通八洲科技

C++ Conan包管理器怎么用?C++依赖管理工具入门指南【工程化】

日期:2025-12-30 00:00 / 作者:裘德小鎮的故事
Conan是C++主流跨平台依赖管理工具,核心流程为“配置→声明→构建→消费”:pip安装后配置国内源与profile;用conanfile.txt声明依赖并生成CMake配置;通过conan install下载并锁定依赖;最后在CMake中集成toolchain与find_package完成构建。

Conan 是 C++ 领域最主流的跨平台依赖管理工具,它不绑定构建系统,能和 CMake、Meson、Bazel 等无缝协作,也支持私有仓库和二进制缓存。用好 Conan 的关键不是记命令,而是理解“配置 → 声明 → 构建 → 消费”这个闭环。

1. 安装与基础配置

推荐用 pip 安装最新稳定版(避免系统包管理器的老旧版本):

pip install conan

首次运行 conan 会自动创建默认配置目录(~/.conan2)。建议马上配置国内加速源,避免被墙卡住:

2. 在项目中声明依赖(conanfile.py 或 conanfile.txt)

推荐新手从 conanfile.txt 入手,轻量直观;工程成熟后可升级为 conanfile.py 获得完整逻辑控制能力。

示例 conanfile.txt:

[requires]
fmt/10.2.1
spdlog/1.13.0
[generators]
CMakeDeps
CMakeToolchain
[layout]
cmake_layout

说明:

3. 下载依赖并生成构建配置

进入项目根目录(含 conanfile.txt),执行:

conan install . --build=missing -o *:shared=True

关键参数解释:

4. 在 CMake 中接入 Conan 生成的配置

修改你的 CMakeLists.txt,在 project() 之后、add_executable() 之前加入:

include(${CMAKE_BINARY_DIR}/conan_toolchain.cmake)
find_package(fmt CONFIG REQUIRED)
find_package(spdlog CONFIG REQUIRED)

然后在 target_link_libraries 中引用:

target_link_libraries(myapp PRIVATE fmt::fmt spdlog::spdlog)

最后正常构建:

mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
cmake --build .

基本上就这些。Conan 的核心价值在于把“找库、编译库、连头文件、设链接路径、处理 ABI 差异”这些脏活封装成可复现的自动化流程。初期多跑几遍 conan installconan list 查看依赖树,比死记文档更有效。