vcpkg安装jsoncpp后编译提示找不到json.h,如何添加头文件搜索目录
fatal error: 'json.h' file not found
该报错核心原因是编译器的头文件搜索路径中未包含vcpkg安装jsoncpp的对应目录,你可以按照以下步骤处理:
第一步:确认头文件实际路径
首先检查你项目内的vcpkg安装目录,jsoncpp头文件的默认路径为:[项目内vcpkg根目录]/installed/[目标架构]/include/json/json.h
- Windows x64架构示例:
vcpkg/installed/x64-windows/include/json/json.h - Linux x64架构示例:
vcpkg/installed/x64-linux/include/json/json.h - macOS arm64架构示例:
vcpkg/installed/arm64-osx/include/json/json.h
确认该路径真实存在,排除安装失败、架构选择错误的问题。
另外注意:jsoncpp官方标准引用写法为#include <json/json.h>,如果你代码里写的是#include <json.h>,要么修改为标准写法,要么后续额外把[项目内vcpkg根目录]/installed/[目标架构]/include/json也添加到包含路径中。
第二步:按构建工具配置头文件搜索路径
使用CMake构建(推荐)
优先使用vcpkg原生集成方案,无需手动配置路径:
- 执行cmake生成命令时添加vcpkg工具链参数:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[项目内vcpkg根目录]/scripts/buildsystems/vcpkg.cmake
- 在
CMakeLists.txt中添加jsoncpp引用逻辑:
find_package(jsoncpp CONFIG REQUIRED) # 将下方的YourTarget替换为你实际的编译目标名称 target_link_libraries(YourTarget PRIVATE JsonCpp::JsonCpp)
如果不想使用工具链集成,也可以手动添加路径:
# 添加头文件搜索路径 include_directories([项目内vcpkg根目录]/installed/[目标架构]/include) # 添加库文件搜索路径 link_directories([项目内vcpkg根目录]/installed/[目标架构]/lib) # 链接jsoncpp库 target_link_libraries(YourTarget PRIVATE jsoncpp)
使用Visual Studio(MSBuild)构建
- 右键项目 → 打开「属性」面板,顶部选择对应使用的平台(如x64)
- 进入「C/C++ → 常规 → 附加包含目录」,添加路径:
[项目内vcpkg根目录]\installed\[目标架构]\include - (可选,用于链接阶段)进入「链接器 → 常规 → 附加库目录」,添加路径:
[项目内vcpkg根目录]\installed\[目标架构]\lib;再进入「链接器 → 输入 → 附加依赖项」,添加jsoncpp.lib
使用Makefile构建
在Makefile中添加编译、链接参数:
# 添加头文件搜索路径 CXXFLAGS += -I[项目内vcpkg根目录]/installed/[目标架构]/include # 添加库搜索路径与链接规则 LDFLAGS += -L[项目内vcpkg根目录]/installed/[目标架构]/lib -ljsoncpp
直接使用gcc/clang命令行编译
编译时直接传入路径参数即可,示例:
g++ your_source.cpp -o output_bin -I./vcpkg/installed/x64-linux/include -L./vcpkg/installed/x64-linux/lib -ljsoncpp
内容的提问来源于stack exchange,提问作者ElMatador
相关产品推荐
相关产品推荐

