温馨提示×

Linux C++怎么配置库

小樊
41
2026-08-27 06:37:07
栏目: 编程语言

在 Linux 下用 C++ 配置(使用)第三方库,一般分几种常见方式。下面从最常见到较现代给你一个完整说明,并附示例。


一、常见库配置方式概览

方式 说明 适合场景
系统包管理器 apt / yum / dnf 安装 最常用、最简单
手动编译安装 configure / cmake + make 库不在仓库
pkg-config 自动获取编译参数 C/C++ 库
CMake 现代 C++ 项目 推荐
vcpkg / conan 包管理工具 跨平台项目

二、方式一:使用系统包管理器(最简单 ✅)

1️⃣ 安装库(以 Ubuntu 为例)

sudo apt update
sudo apt install libopencv-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libboost-all-dev

开发库一般带 -dev 后缀


2️⃣ 编译时链接库

g++ main.cpp -o app `pkg-config --cflags --libs opencv4`

或者手动:

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

三、方式二:使用 pkg-config(推荐 ✅)

1️⃣ 查看是否支持

pkg-config --list-all | grep opencv

2️⃣ 编译示例

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

pkg-config 会自动帮你处理:

  • -I(头文件路径)
  • -L(库路径)
  • -l(链接库)

四、方式三:手动编译安装库

1️⃣ 下载源码

git clone https://github.com/xxx/xxx.git
cd xxx

2️⃣ CMake 方式(最常见)

mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install

默认安装到:

/usr/local/include
/usr/local/lib

3️⃣ 编译时指定路径

g++ main.cpp -I/usr/local/include -L/usr/local/lib -lxxx

如果运行时报错:

error while loading shared libraries

执行:

sudo ldconfig

五、方式四:使用 CMake(现代 C++ ✅✅)

1️⃣ CMakeLists.txt 示例

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(OpenCV REQUIRED)

add_executable(demo main.cpp)
target_link_libraries(demo OpenCV::OpenCV)

2️⃣ 编译

mkdir build
cd build
cmake ..
make

这是目前最推荐的方式


六、方式五:使用 vcpkg(跨平台)

1️⃣ 安装 vcpkg

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

2️⃣ 安装库

./vcpkg install opencv

3️⃣ CMake 使用

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

七、常见问题排查

❌ 找不到头文件

fatal error: xxx.h: No such file or directory

✅ 解决:

sudo apt install libxxx-dev

❌ 找不到库

undefined reference to `xxx`

✅ 解决:

  • 检查 -lxxx
  • 检查 -L 路径
  • ldconfig

❌ 运行时找不到 so

error while loading shared libraries

✅ 解决:

sudo ldconfig

或:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

八、推荐组合(实战)

新手 / 服务器

apt + g++ + pkg-config

现代 C++ 项目

CMake + find_package

跨平台 / 大型项目

vcpkg / conan + CMake

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

  • 用的是 Ubuntu / CentOS / Arch
  • 用的是 Makefile / CMake
  • 具体是 哪个库(如 OpenCV / Boost / protobuf)

我可以直接给你一步一步的命令

0