在 Ubuntu 上用 C++ 管理依赖,常见方式有以下几种,从“简单直接”到“现代化工程化”逐步进阶:
Ubuntu 自带 apt,适合系统级库。
sudo apt update
sudo apt install libboost-dev
sudo apt install libopencv-dev
sudo apt install libcurl4-openssl-dev
g++ main.cpp -o app -lopencv_core -lcurl
dpkg -L libboost-dev
pkg-config --cflags --libs opencv4
✅ 优点:简单、稳定
❌ 缺点:版本受系统限制,不便于多项目隔离
很多库提供 .pc 文件。
g++ main.cpp $(pkg-config --cflags --libs gtk+-3.0)
CMake 中也可用:
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED gtk+-3.0)
最主流方式。
find_package(OpenCV REQUIRED)
target_link_libraries(app PRIVATE OpenCV::OpenCV)
set(CMAKE_CXX_STANDARD 17)
✅ 优点:跨平台、可维护
✅ 工业界标准
微软维护,支持 Linux / Windows / macOS。
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install fmt spdlog
cmake -B build -S . \
-DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake
✅ 优点:版本可控、跨平台
✅ 非常适合现代 C++
更接近“Java Maven / Python pip”。
pip install conan
conan install . --output-folder=build --build=missing
conanfile.txt 示例:
[requires]
fmt/10.1.1
spdlog/1.12.0
[generators]
CMakeDeps
CMakeToolchain
✅ 优点:非常灵活
❌ 缺点:学习曲线稍高
避免“在我机器上能跑”。
FROM ubuntu:22.04
RUN apt update && apt install -y g++ cmake libboost-dev
| 场景 | 推荐 |
|---|---|
| 学习 / 小工具 | apt + CMake |
| 正式项目 | CMake + vcpkg |
| 多平台项目 | Conan / vcpkg |
| 团队开发 | Docker + CMake |
如果你愿意,可以告诉我:
我可以给你一套具体可复制的配置示例。