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

Github Action下Conan管理的C++项目链接fmt库报错找不到-lfmt

排查解决步骤

1. 检查CMakeLists.txt链接配置

这是概率最高的问题原因,你需要确认CMake中对目标的链接配置符合Conan生成规则:

  • 优先使用Conan通过cmake_find_package生成的导入目标进行链接,不要直接使用裸库名:
# 正确写法
target_link_libraries(genetic_algo PRIVATE fmt::fmt effolkronium_random::effolkronium_random range-v3::range-v3)
# 错误写法,会导致仅传递-lfmt,不传递库搜索路径
target_link_libraries(genetic_algo PRIVATE fmt effolkronium_random range-v3)
  • 如果你使用Conan生成的全局依赖变量CONAN_LIBS,确认已经将其添加到目标的链接库中:
target_link_libraries(genetic_algo PRIVATE ${CONAN_LIBS})

2. 修正Github Action中的Conan配置

本地环境的Conan已经配置了和编译环境匹配的参数,但线上Runner的默认Conan配置与你使用的GCC 11不匹配,需要在安装Conan后、CMake配置前添加Conan profile配置步骤:

- name: 配置Conan编译参数
  run: |
    conan profile new default --detect --force
    conan profile update settings.compiler=gcc default
    conan profile update settings.compiler.version=11 default
    conan profile update settings.compiler.cppstd=${{matrix.config.cxx_standard}} default
    conan profile update settings.compiler.libcxx=libstdc++11 default

3. 修复Conan缓存规则

你当前的缓存key没有包含编译器版本、C++标准、conanfile.py的哈希,旧缓存中存储的低版本GCC生成的依赖包会和当前构建环境冲突,修改缓存配置如下:

- name: Cache
  uses: actions/cache@v2
  env:
    cache-name: cache-conan-modules
  with:
    path: |
      ${{ env.CONAN_USER_HOME }}
      ~/.cache/pip
    key: ${{ runner.os }}-${{ env.BUILD_TYPE }}-${{ matrix.config.cc }}-${{ hashFiles('conanfile.py') }}-${{ hashFiles('CMakeLists.txt') }}-${{ hashFiles('cmake/Conan.cmake') }}

修改完成后可以先临时注释掉缓存配置跑一次流水线,确认是否是缓存导致的问题。

4. 打印详细日志定位问题

如果以上步骤都没有解决问题,添加日志打印确认链接参数:

  1. 在CMakeLists.txt中添加以下代码,打印fmt库的链接路径配置:
find_package(fmt REQUIRED)
get_target_property(FMT_LINK_DIR fmt::fmt INTERFACE_LINK_DIRECTORIES)
message(STATUS "Fmt库的链接搜索路径:${FMT_LINK_DIR}")
  1. 构建时添加verbose参数,输出完整的链接命令:
- name: Build
  run: |
    CC=${{matrix.config.cc}} CXX=${{matrix.config.cxx}} cmake --build ./build --config ${{ env.BUILD_TYPE }} --verbose

如果输出的链接命令中没有包含fmt库的存储路径,说明CMake的链接配置没有正确传递参数,回到第一步重新检查链接目标的配置。


内容的提问来源于stack exchange,提问作者Ulrich Von Rekkenin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:09:03