conan

2025-06-01

python

忧劳可以兴国,逸豫可以亡身。——《新五代史·伶官传序》

https://github.com/conan-io/conan

Conan:现代化的 C/C++ 包管理器

在现代软件开发中,包管理器是不可或缺的工具。它帮助开发者轻松管理项目依赖,简化构建流程,提高开发效率。然而,C/C++ 作为经典的编程语言,其生态一直缺乏一个统一的包管理工具。为了解决这一问题,Conan 应运而生。

Conan 是一个开源的包管理器,专为 C/C++ 项目设计,通过灵活的配置和强大的工具链支持,帮助开发者轻松管理依赖和构建项目。


什么是 Conan?

Conan 是一个 C/C++ 包管理器,旨在简化依赖管理和构建流程。它支持跨平台开发,能够与多种构建系统(如 CMake、Makefile)和编译器(如 GCC、Clang)无缝集成。通过 Conan,开发者可以轻松下载、创建和管理 C/C++ 项目的依赖库。


核心特性

1. 跨平台支持

Conan 支持多种操作系统(Windows、Linux、macOS)以及多种编译器(GCC、Clang、MSVC),帮助开发者在不同平台上轻松构建项目。

2. 灵活的配置

Conan 提供了强大的配置能力,可以根据不同的编译器、操作系统和构建选项生成定制化的包。

3. 丰富的生态系统

Conan 拥有庞大的包生态,开发者可以从 ConanCenter 下载常用的 C/C++ 库,例如 Boost、OpenSSL、zlib 等。

4. 构建系统集成

Conan 与多种构建系统无缝集成,包括:

  • CMake
  • Makefile
  • Visual Studio
  • Ninja

5. 支持私有仓库

除了公共包仓库,Conan 还支持私有仓库,适用于企业内部的包管理需求。


应用场景

1. 开源项目

开源项目可以使用 Conan 提供的公共仓库(如 ConanCenter)管理依赖库,简化开发者的环境配置。

2. 企业项目

Conan 支持私有仓库和定制化配置,是企业构建内网包管理系统的理想选择。

3. 多平台开发

对于需要支持多平台的项目,Conan 的跨平台特性可以帮助开发者轻松构建和测试代码。


快速上手指南

以下是使用 Conan 管理项目的基本步骤:

1. 安装 Conan

Conan 支持通过 pip 安装:

1
pip install conan

安装完成后,验证安装:

1
conan --version

2. 创建项目

创建一个 C/C++ 项目并初始化 Conan:

1
2
3
mkdir my_project
cd my_project
conan new my_project/0.1 --template=default

这将生成一个示例项目结构,包括 conanfile.py,用于定义项目依赖。


3. 安装依赖

conanfile.py 文件中定义项目依赖,例如:

1
2
3
4
5
6
7
from conan import ConanFile

class MyProjectConan(ConanFile):
name = "my_project"
version = "0.1"
requires = "boost/1.82.0", "openssl/3.1.0"
generators = "cmake"

安装依赖:

1
conan install . --output-folder=build

4. 构建项目

使用生成的构建文件构建项目:

1
2
3
cd build
cmake ..
cmake --build .

Conan 会自动下载并集成依赖库,极大简化了构建流程。


5. 上传包

如果需要将项目包上传到远程仓库,可以使用以下命令:

1
conan upload my_project/0.1@user/channel --remote=my_remote

与其他工具的对比

特性 Conan vcpkg Homebrew
语言支持 专注于 C/C++ 专注于 C/C++ 多语言支持
跨平台支持 强大支持 强大支持 主要支持 macOS/Linux
构建系统集成 无缝集成 CMake 等 无缝集成 CMake 等 不支持
私有仓库支持 支持 不支持 不支持
包生态 丰富(ConanCenter) 丰富(vcpkg registry) 丰富(Homebrew Tap)

Conan 在私有仓库支持和构建系统集成方面具有独特优势,适合企业级项目和复杂的多平台开发。


实际案例

1. 开源项目集成

许多开源项目使用 Conan 来管理依赖库,例如 Boost 和 OpenSSL,从而简化用户的安装和构建流程。

2. 企业内部包管理

某公司通过 Conan 构建了内部的私有包管理系统,将依赖库上传到企业内网,确保项目构建的安全性和一致性。

3. 多平台支持

游戏开发团队通过 Conan 管理跨平台的图形库和工具链,显著提高了开发效率。


总结

Conan 是一个现代化的 C/C++ 包管理器,专注于解决依赖管理和跨平台构建的难题。它的强大功能和灵活配置让开发者可以轻松管理项目依赖,提升开发效率。

项目地址:https://github.com/conan-io/conan

如果你正在寻找一个高效的 C/C++ 包管理工具,不妨试试 Conan!欢迎为项目点亮 ⭐️!