在 Linux 下管理 C++ 依赖,常见做法从“最原始”到“现代化”有多种方案。下面按实用程度 + 工程规模给你一个清晰地图。
sudo apt install libboost-dev libopencv-dev
优点
缺点
✅ 适合:学习、脚本工具、服务器程序
include(FetchContent)
FetchContent_Declare(
fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
GIT_TAG 10.1.1
)
FetchContent_MakeAvailable(fmt)
优点
缺点
✅ 适合:中大型 C++ 项目(最常见)
vcpkg install boost fmt
CMake 中:
set(CMAKE_TOOLCHAIN_FILE ~/vcpkg/scripts/buildsystems/vcpkg.cmake)
优点
缺点
✅ 适合:跨平台项目、团队开发
[requires]
boost/1.83.0
fmt/10.1.1
conan install . --build=missing
优点
缺点
✅ 适合:大型项目、多模块、CI
FROM ubuntu:22.04
RUN apt update && apt install -y libboost-dev
优点
缺点
✅ 适合:服务器、CI、交付
| 场景 | 推荐 |
|---|---|
| 小工具 | apt + CMake |
| 普通项目 | CMake + FetchContent |
| 跨平台 | vcpkg |
| 企业 / 多团队 | Conan |
| 服务器 | Docker + apt/vcpkg |
✅ 不要混用系统库和本地库 ✅ 锁定版本(Git Tag / 版本号) ✅ CI 里复现依赖安装 ✅ README 写清楚依赖来源
如果你愿意,可以告诉我:
我可以直接帮你设计一套依赖管理方案 + 示例 CMake。