在 Linux 下用 C++ 管理依赖,常见做法从“最原始”到“现代化”都有。下面按实际使用场景给你一个清晰总结。
aptyum / dnfpacmansudo apt install libboost-dev libopencv-dev
✅ 简单
✅ 稳定
❌ 版本旧
❌ 跨平台差
❌ 不适合复杂项目
find_package(Boost REQUIRED)
find_package(OpenCV REQUIRED)
target_link_libraries(app
Boost::boost
${OpenCV_LIBS}
)
/usr/local✅ 行业标准
✅ 灵活
❌ 依赖仍需手动安装或脚本管理
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install fmt boost
cmake -B build -S . \
-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake
✅ 版本可控
✅ 跨平台
✅ 不用 root
❌ 首次编译慢
[requires]
boost/1.83.0
fmt/10.1.0
conan install . --output-folder=build --build=missing
include(${CMAKE_BINARY_DIR}/conan_toolchain.cmake)
✅ 真正的 C++ 包管理
✅ 支持二进制复用
❌ 学习曲线陡
git submodule add https://github.com/fmtlib/fmt
❌ 编译慢
❌ 版本管理痛苦
CMake + vcpkg
CMake + Conan
CMake + apt + Docker
很多 Linux C++ 项目最终都这样:
FROM ubuntu:22.04
RUN apt install -y libboost-dev
COPY . /app
✅ 依赖可复现
✅ 不污染宿主机
Linux C++ 依赖管理:能用 vcpkg / Conan 就用,别再手动 apt + 找头文件了。
如果你愿意,可以告诉我:
我可以直接给你一套可复制的 CMake + 依赖方案。