温馨提示×

linux c++配置怎么配库

小樊
44
2026-09-29 05:42:32
栏目: 编程语言

在 Linux 下用 C++ 配置(使用)第三方库,一般有几种常见方式。下面从最常用到进阶给你讲清楚,并配示例。


一、最基础:系统已安装库(用包管理器)

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

sudo apt update
sudo apt install libopencv-dev

2️⃣ 编译时链接库

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

或简写:

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

二、使用 pkg-config(推荐)

很多库都提供 .pc 文件:

pkg-config --libs opencv4
pkg-config --cflags opencv4

CMake 中:

find_package(PkgConfig REQUIRED)
pkg_check_modules(OPENCV REQUIRED opencv4)
target_include_directories(app PRIVATE ${OPENCV_INCLUDE_DIRS})
target_link_libraries(app ${OPENCV_LIBRARIES})

三、用 CMake(最主流方式)

示例:使用 Eigen(头文件库)

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(Eigen3 REQUIRED)
add_executable(demo main.cpp)
target_link_libraries(demo Eigen3::Eigen)

示例:使用 OpenCV

find_package(OpenCV REQUIRED)
target_link_libraries(demo ${OpenCV_LIBS})

四、手动指定库路径(没用包管理器)

假设你有:

/home/user/mylib/
├── include/
└── lib/
    └── libmylib.so

编译命令

g++ main.cpp -I/home/user/mylib/include \
             -L/home/user/mylib/lib \
             -lmylib \
             -o main

运行时找不到库?

export LD_LIBRARY_PATH=/home/user/mylib/lib:$LD_LIBRARY_PATH

五、自己编译并安装库(源码方式)

git clone https://github.com/libexample/lib.git
cd lib
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install

默认安装到:

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

CMake 自动能找到。


六、静态库 vs 动态库

类型 后缀 特点
静态库 .a 编译进程序
动态库 .so 运行时加载
g++ main.cpp -static -lmylib   # 静态

七、常见坑

✅ 头文件找不到 → -I
✅ 库找不到 → -L
✅ 链接顺序问题(库放后面)
✅ sudo ldconfig 更新动态库缓存
✅ nm libxxx.so 看导出符号


八、推荐实践(现代 C++)

✅ 用 CMake
✅ 用 find_package
✅ 用 target_* 系列命令
✅ 不手动写 -I -L -l


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

  • 你用的是 Ubuntu / CentOS / Arch
  • 用的是 Makefile 还是 CMake
  • 具体想配 哪个库(OpenCV / Boost / Qt / 自研库)

我可以给你针对性完整示例。

0 踩