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

使用CMake通过Git子模块引入jwt-cpp库失败,头文件未找到

解决jwt-cpp头文件找不到的编译错误

问题根源

你写的CMake配置里用了INTERFACE关键字设置头文件目录和链接库,但INTERFACE是给依赖当前目标的其他项目用的,你的Trial是需要直接编译的可执行文件,根本吃不到这个配置,所以编译器找不到头文件。另外,你已经通过add_subdirectory引入了子模块,后面的find_package分支完全多余,反而可能干扰配置。

修改后的CMakeLists.txt

直接替换原有配置即可:

cmake_minimum_required(VERSION 3.24.2)
set(This Trial)
project(${This} C CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

set(Sources main.cpp)
add_executable(${This} ${Sources})

# 引入jwt-cpp子模块
add_subdirectory(External/jwt)

# 给当前可执行文件添加头文件搜索路径(用PRIVATE,因为只有自身需要)
target_include_directories(${This} PRIVATE External/jwt/include)
# 链接jwt-cpp库到可执行文件
target_link_libraries(${This} PRIVATE jwt-cpp::jwt-cpp)

额外检查步骤

  • 确保子模块拉取完整:执行git submodule update --init --recursive,jwt-cpp依赖的fmt库默认用子模块管理,必须拉取完整才能正常编译
  • 清空旧构建文件重新编译:
    rm -rf build/*
    cd build
    cmake ..
    make
    

这样修改后,编译器就能正确找到jwt-cpp的头文件,编译即可正常完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:55:30