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

已通过vcpkg安装nlohmann-json仍报错:无法打开adl_serializer.h

解决nlohmann-json头文件引用错误:找不到adl_serializer.h的问题
  • 不要硬编码绝对路径引用头文件
    直接写#include "C:\Users\Lenovo\Documents\cpp\vcpkg\buildtrees\nlohmann-json\src\v3.11.3-434e7fbc3e.clean\single_include\nlohmann\json.hpp"会导致跨机器路径不兼容,正确的引用方式是#include <nlohmann/json.hpp>,让构建系统自动从vcpkg的包含目录中查找文件。

  • 确保vcpkg完成全局集成
    打开终端执行vcpkg integrate install,执行成功后会提示“Applied user-wide integration for this vcpkg root.”,此时VS等IDE会自动将vcpkg的包包含目录加入项目的搜索路径。

  • 检查项目的包含目录配置

    • 若使用CMake构建,在CMakeLists.txt中添加:
      find_package(nlohmann_json REQUIRED)
      target_link_libraries(你的项目名称 PRIVATE nlohmann_json::nlohmann_json)
      
      CMake会自动处理nlohmann-json的包含目录和依赖。
    • 若使用VS项目,右键项目→属性→VC++目录→包含目录,确认已添加vcpkg的installed/[对应triplet]/include路径(例如C:\Users\Lenovo\Documents\cpp\vcpkg\installed\x64-windows\include),未添加则手动补充。
  • 排查文件权限与路径一致性

    • 确认另一台机器上adl_serializer.h文件无权限限制(如只读、当前用户无访问权限)。
    • 检查json.hpp中引用adl_serializer.h的语句,确保文件名大小写与实际文件一致(部分构建工具对大小写敏感)。
  • 验证vcpkg包的安装状态

    • 执行vcpkg list,确认nlohmann-json已正确安装,且安装的triplet与项目平台匹配(如x64项目对应x64-windows)。
    • 若项目使用Release配置,确保已安装Release版本的包,可执行vcpkg install nlohmann-json:x64-windows完成安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:09