Conan是C++跨平台包管理工具,通过pip安装后可用conanfile.txt或conanfile.py声明依赖,支持自动下载、构建及生成CMake配置,简化库管理和项目构建流程。

在现代C++开发中,手动管理第三方库的依赖和编译配置非常繁琐。Conan 是一个功能强大的 C++ 包管理工具,支持跨平台、多构建系统,并能自动处理不同版本的依赖关系。下面是一个实用的 Conan 使用指南,帮助你快速上手。
安装 Conan
Conan 基于 Python 开发,因此需要先安装 Python(推荐 3.7+),然后通过 pip 安装:
- pip install conan
安装完成后,运行 conan --version 验证是否成功。
初始化项目并添加依赖
进入你的 C++ 项目目录,创建一个 conanfile.txt 来声明依赖:
立即学习“C++免费学习笔记(深入)”;
[requires] boost/1.82.0 openssl/3.1.3 fmt/10.0.0 [generators] cmake_find_package
这个文件说明项目依赖 Boost、OpenSSL 和 fmt 库。generators 指定生成适配 CMake 的查找脚本。
接着执行命令下载并配置依赖:
- conan install . --output-folder=build --build=missing
该命令会把依赖安装到 build 目录,并在缺少二进制包时自动从源码构建。
在 CMake 中使用 Conan 依赖
如果你使用 CMake,可以在 CMakeLists.txt 中正常查找库:
find_package(Boost REQUIRED) find_package(OpenSSL REQUIRED) find_package(fmt REQUIRED) target_link_libraries(your_target PRIVATE Boost::headers OpenSSL::SSL fmt::fmt)
因为 Conan 生成了对应的 FindXXX.cmake 文件,CMake 能正确找到这些库。
使用 conanfile.py 进阶控制
对于更复杂的项目,建议使用 conanfile.py 替代 conanfile.txt。它可以编写 Python 代码来定义构建逻辑、条件依赖等:
from conan import ConanFile
from conan.tools.cmake import CMake
class HelloConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
generators = "CMakeToolchain", "CMakeDeps"
def requirements(self):
self.requires("boost/1.82.0")
self.requires("fmt/10.0.0")
def layout(self):
self.folders.generators = "conan"
使用这种方式,你可以更灵活地控制输出路径、构建参数和平台配置。
创建和上传自己的包
你也可以把自己写的库打包并分享:
- 编写 conanfile.py 描述包信息
- 运行 conan create . 构建本地包
- 使用 conan upload 推送到远程仓库(如 Conan Center 或私有服务器)
这样团队或社区就可以像使用其他库一样引入你的代码。
基本上就这些。Conan 让 C++ 依赖管理变得简单可靠,尤其适合大型项目或多平台发布场景。










