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

CMake编译报错:无法找到所用nlohmann库中的依赖头文件

解决编译错误:找不到nlohmann头文件

问题原因

编译报错是因为编译器搜索头文件时,找不到nlohmann/adl_serializer.hpp的路径。虽然这些依赖头文件和json.hpp在同一目录,但json.hpp里用了<nlohmann/adl_serializer.hpp>这种尖括号引用方式,编译器会从系统默认路径和你指定的包含路径里查找nlohmann子目录,而当前CMake配置未将src/lib加入到包含路径中。

修复步骤

修改你的CMakeLists.txt,做两处调整:

  • 添加include_directories(src/lib),告知编译器去src/lib目录下搜索头文件
  • 移除SOURCE_FILES里的src/lib/nlohmann/json.hpp,头文件无需作为源文件添加到编译目标中

修改后的CMakeLists.txt内容:

cmake_minimum_required(VERSION 3.13)
project(bittorrent-starter-cpp)
set(CMAKE_CXX_STANDARD 20) 

# 添加头文件搜索路径
include_directories(src/lib)

set(SOURCE_FILES src/Main.cpp)
add_executable(bittorrent ${SOURCE_FILES})

原理说明

添加include_directories(src/lib)后,编译器会把src/lib作为头文件搜索目录,当json.hpp引用<nlohmann/adl_serializer.hpp>时,编译器就能在src/lib/nlohmann目录下找到对应头文件,从而解决找不到文件的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:17:37