温馨提示×

ubuntu c++怎样管理依赖

小樊
45
2026-09-29 12:29:44
栏目: 编程语言

在 Ubuntu 上用 C++ 管理依赖,常见做法可以按项目规模和使用习惯来分。下面从系统级到现代方案系统讲一下。


一、最基础:使用系统包管理器(APT)

适合:简单项目、学习、脚本工具

安装依赖

sudo apt update
sudo apt install libboost-dev libeigen3-dev libopencv-dev

编译时使用

g++ main.cpp -o app -lopencv_core -lopencv_imgproc

查看头文件位置

dpkg -L libboost-dev

✅ 优点:简单、稳定
❌ 缺点:版本旧、不易隔离


二、使用 pkg-config(推荐基础方案)

很多库提供 .pc 文件:

pkg-config --cflags --libs opencv

示例编译:

g++ main.cpp $(pkg-config --cflags --libs opencv) -o app

CMake 中也可使用:

find_package(PkgConfig REQUIRED)
pkg_check_modules(OPENCV REQUIRED opencv)

三、CMake + find_package(最常用)

适合:中大型 C++ 项目

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(Boost REQUIRED)
find_package(Eigen3 REQUIRED)

add_executable(app main.cpp)
target_link_libraries(app Boost::boost Eigen3::Eigen)

常见库:

  • Boost
  • OpenCV
  • Eigen
  • protobuf

✅ 优点:跨平台
❌ 缺点:系统库版本受限


四、Conan(现代 C++ 依赖管理,强烈推荐)

适合:真实项目、跨平台、版本控制

安装

pip install conan

示例 conanfile.txt

[requires]
boost/1.83.0
fmt/10.1.1

[generators]
CMakeDeps
CMakeToolchain

使用

conan install . --output-folder=build --build=missing
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
cmake --build .

✅ 优点:

  • 版本精确
  • 不污染系统
  • 可复现

五、vcpkg(微软方案,也可用)

适合:Windows + Linux 混合开发

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

CMake:

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

六、容器化(终极方案)

适合:团队协作、CI

FROM ubuntu:22.04
RUN apt install -y libboost-dev

七、方案选择建议

场景 推荐
学习 / 小工具 apt + g++
普通项目 CMake + apt
多平台 / 商业 Conan
Windows 为主 vcpkg
团队 / CI Docker + Conan

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

  • Ubuntu 版本
  • C++ 标准(11/17/20)
  • 用的库(Boost / OpenCV / 自研)

我可以给你一个可直接用的模板。

0 踩