You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Godbolt中读取Isource.json并生成Osource.json(非CMake项目)

在Godbolt上实现读/写JSON的C项目(不用CMake,用g Makefile)

我想基于Godbolt的示例修改项目,实现读取Isource.json输入文件并写入Osource.json,所有JSON文件都存在Godbolt的项目内。目前我的代码在本地Windows的Visual Studio能正常编译运行,但在Godbolt上无法编译,也不知道怎么在Godbolt里创建Isource.json文件。

我的代码如下:

#include <boost/json.hpp>
using namespace boost::json;
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
#include <vector>
#include <iostream>
#include <fstream>

int main() {

    std::string fname = "Isource.json";
    //Read JSON file and store in json::object
    const path fileName(fname);
    object obj;
    std::ifstream file(fname);
    std::string content(std::istreambuf_iterator<char>{file}, std::istreambuf_iterator<char>{});
    value jv = parse(content);
    obj = jv.as_object();
    file.close();
        
    //Output to OSource.json
    fname = "Osource.json";
    std::ofstream ofile(fname);
    ofile << boost::json::value_from(obj);
    ofile.close();

}

需求明确:

  • 不使用CMake,采用标准传统g++ Makefile构建
  • 解决Godbolt上的编译失败问题
  • 学会在Godbolt中创建Isource.json输入文件
  • 让Godbolt生成可直接查看的Osource.json输出文件

一、解决Godbolt编译报错问题

Godbolt的g++环境默认不会自动链接Boost库,需要手动指定编译参数:

  1. 编译时需链接Boost的json和filesystem库,且C标准至少指定为C17(Boost.Json依赖C++17特性)
  2. 在Godbolt的「Compiler Options」输入框中填入:-std=c++20 -lboost_json -lboost_filesystem
    • 无需添加源文件名,Godbolt会自动识别当前项目中的C++源文件

二、在Godbolt中创建Isource.json输入文件

  1. 点击编辑器顶部的「Add New File」按钮
  2. 文件名输入Isource.json,在文件内写入测试用的JSON内容,比如:
{
  "test_key": "demo_value",
  "num": 12345
}
  1. 保存后,该文件会和你的C++源文件处于同一项目目录,程序可直接读取

三、编写传统Makefile用于构建

  1. 新建一个名为Makefile的文件,内容如下:
CC = g++
CFLAGS = -std=c++20 -Wall
LDFLAGS = -lboost_json -lboost_filesystem

# 生成可执行文件
all: json_processor

json_processor: main.cpp
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

# 运行程序
run: json_processor
	./json_processor

# 清理生成的文件
clean:
	rm -f json_processor Osource.json

注意:将main.cpp替换为你实际的C++源文件名
2. 在Godbolt的构建选项中,将默认编译器切换为「Makefile」,系统会自动识别并执行Makefile中的指令

四、查看生成的Osource.json文件

  1. 执行make run后,Godbolt的项目文件列表中会出现Osource.json
  2. 直接点击该文件即可查看内容,程序的运行日志可在「Output」面板中查看

内容的提问来源于stack exchange,提问作者Tryer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:18:15