VS Code中C++项目配置simdjson头文件包含及链接报错解决
分步解决编译报错问题
首个报错:simdjson.h: No such file or directory
该问题的成因是编译命令未指定头文件搜索路径,g++ 默认仅检索当前编译文件所在目录、系统内置头文件目录,不会自动扫描项目下的 include 文件夹。
你之前在tasks.json里添加的 -I${workspaceFolder}/include 参数可直接解决该问题。
修改后新报错:大量undefined reference链接错误
该问题的核心成因是:simdjson 的全部实现逻辑都位于 include/simdjson.cpp 文件中,原有编译指令仅编译了 src/parse_json.cpp,未将 simdjson 的实现源码纳入编译、链接流程,导致所有simdjson相关的函数、全局变量都找不到对应实现。
最终正确配置调整
1. 修改tasks.json的编译参数
把include目录下的simdjson.cpp加入编译源文件列表,完整的参数配置如下:
"args": [ "-g", "${file}", "${workspaceFolder}/include/simdjson.cpp", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-I${workspaceFolder}/include" ]
2. 补全parse_json.cpp的缺失头文件
原代码中使用了std::cout做输出,未引入对应的标准库头文件,需要在文件最顶部添加一行引入:
#include <iostream>
说明:simdjson 自身的编译开销较高,第一次执行编译时耗时略长属于正常现象。
内容的提问来源于stack exchange,提问作者DachuanZhao
相关产品推荐
相关产品推荐

