温馨提示×

linux c++配置怎么管理依赖

小樊
40
2026-10-13 22:01:15
栏目: 编程语言

在 Linux 下用 C++ 管理依赖,常见做法按“项目规模 / 团队 / 现代化程度”从简单到复杂大致如下:


一、最原始:系统包管理器 + 头文件

适合:小工具、学习项目

  • 用 apt / yum / pacman 安装依赖
sudo apt install libboost-dev libssl-dev
  • 编译时直接 -I / -L / -l

✅ 简单
❌ 不可复现、版本难控


二、构建系统内置依赖管理

1. CMake + FetchContent(推荐现代做法)

适合:中小型项目,想要可复现

include(FetchContent)
FetchContent_Declare(
  fmt
  GIT_REPOSITORY https://github.com/fmtlib/fmt.git
  GIT_TAG 10.1.1
)
FetchContent_MakeAvailable(fmt)

target_link_libraries(app PRIVATE fmt)

✅ 无需系统安装
✅ 版本锁定
❌ 首次编译慢


2. CMake + find_package(系统或 vcpkg/conan 提供)

find_package(Boost REQUIRED)
target_link_libraries(app Boost::boost)

三、C++ 包管理器(重点推荐)

1. vcpkg(Windows / Linux 都好用)

适合:跨平台项目

git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install fmt boost

CMake 集成:

-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake

✅ 二进制缓存
✅ 社区库多
❌ 仓库较大


2. Conan(最像“现代包管理器”)

适合:中大型、企业项目

pip install conan
conan install . --output-folder=build --build=missing

conanfile.txt:

[requires]
fmt/10.1.1

[generators]
CMakeDeps
CMakeToolchain

✅ 非常灵活
✅ 支持私有仓库
❌ 学习曲线略高


四、容器化(终极方案)

适合:团队协作、CI/CD

FROM ubuntu:22.04
RUN apt install -y build-essential cmake libboost-dev
COPY . /app

✅ 环境 100% 一致
❌ 重


五、推荐组合(实战)

场景 推荐
学习 / 小项目 apt + CMake
开源项目 CMake FetchContent
跨平台 vcpkg
企业 / 复杂 Conan
CI / 团队 Conan + Docker

如果你愿意,可以告诉我:

  • 用的构建系统(CMake / Make / Bazel)
  • 项目规模
  • 是否跨平台

我可以直接给你一套可直接用的依赖管理模板。

0 踩