Conan 2 的 profile 和 remote 必须提前配好:确保 conan 在 PATH 中、运行 conan profile detect、添加 conancenter remote;CMakeLists.txt 需用 conan.cmake 脚本而非 find_package(conan);CLion 中需显式传 -DCONAN_HOME 和 -DCONAN_PROFILE 参数,并启用 CMAKE_EXPORT_COMPILE_COMMANDS 以支持头文件跳转。

Conan 2 的 profile 和 remote 必须提前配好
CLion 本身不管理 Conan,它只调用你系统里已安装的 conan 命令。如果 conan profile list 返回空或报错,CMake 配置阶段就会卡在 find_package(conan) 或 conan_cmake_install() 上——不是 CLion 的问题,而是 Conan 环境没就绪。
- Windows:确保
conan在 PATH 中(比如通过 Scoop 或官方 installer 安装),且运行过conan profile detect - macOS:用
brew install conan后,执行conan profile detect;M1 用户注意检查是否是conan而非conan2(新版统一叫conan) - 必须添加 remote:
conan remote add conancenter https://center.conan.io,否则conan install会找不到包
CMakeLists.txt 里不能只写 find_package(conan)
Conan 2 不再提供 find_package(conan) 的 CMake 模块。直接写这行会报 Could not find a package configuration file。正确做法是用 conan.cmake 脚本或 conan-cmake 工具链。
- 推荐方式:下载官方
conan.cmake到项目根目录(或cmake/子目录),然后在CMakeLists.txt开头加:include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/conan.cmake) conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_SOURCE_DIR} PROFILE_HOST ${CMAKE_CURRENT_SOURCE_DIR}/conan/profiles/default BUILD missing) - profile 文件路径要真实存在,比如
conan/profiles/default内容应含[settings]和[tool_requires] - 别把
conan install命令塞进execute_process()—— 这会导致 CLion 的 CMake configure 阶段阻塞,且缓存不可控
CLion 的 CMake 配置里要传 -DCONAN_HOME 或 -DCONAN_PROFILE
CLion 默认不会把你的 shell 环境变量(如 CONAN_HOME)透传给 CMake。如果 Conan 数据目录不在默认位置(~/.conan2),或者你想指定 profile,就得显式传参。
- 进
Settings | Build, Execution, Deployment | CMake - 在
CMake options框里填:-DCONAN_HOME=/path/to/my/conan -DCONAN_PROFILE=default - 若用自定义 profile 名(如
clang15-debug),确保conan profile list能看到它,且 CMakeLists.txt 里conan_cmake_install()的PROFILE_HOST参数与之匹配 - 改完必须点右上角
Reload project,否则新参数不生效
依赖头文件和链接库在 CLion 里不跳转?检查 compile_commands.json
即使 Conan 安装成功、CMake configure 无报错,CLion 仍可能无法识别 #include <fmt/core.h> 或跳转到第三方库源码——根本原因是 CLion 没读到正确的编译参数。
- 确认
CMakeLists.txt最后有:set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - 确保生成目录(如
cmake-build-debug/compile_commands.json)存在且内容包含"command": "...-I/path/to/conan/include..." - 如果文件存在但 CLion 没加载,手动触发:右键项目根目录 →
Load CMake Project,或删掉整个cmake-build-*目录再 reload - Conan 2.0+ 默认使用
generators = ["CMakeDeps", "CMakeToolchain"],但 CLion 不自动消费这些;必须靠conan.cmake或conan-cmake把它们桥接到 CMake 变量中


















