温馨提示×

linux c++配置怎么集成库

小樊
47
2026-10-02 02:48:36
栏目: 编程语言

在 Linux 下用 C++ 集成第三方库,通常有三种常见方式:系统包管理器安装、源码编译安装、CMake/手动指定路径。下面按“从简单到灵活”给你一个清晰指南。


一、最简单:用系统包管理器(推荐新手)

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

sudo apt update
sudo apt install libopencv-dev

2️⃣ 编译时链接

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

或手动:

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

✅ 优点:简单、稳定
❌ 缺点:版本可能较旧


二、源码编译安装(常用)

1️⃣ 下载并编译

git clone https://github.com/nlohmann/json.git
cd json
mkdir build && cd build
cmake ..
make -j4
sudo make install

一般安装到:

  • 头文件:/usr/local/include
  • 库文件:/usr/local/lib

2️⃣ 编译使用

g++ main.cpp -o app -I/usr/local/include -L/usr/local/lib -ljson

三、CMake 集成(工程化推荐 ✅)

1️⃣ 系统库(find_package)

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(OpenCV REQUIRED)

add_executable(app main.cpp)
target_link_libraries(app ${OpenCV_LIBS})

2️⃣ 本地库(指定路径)

include_directories(/path/to/include)
link_directories(/path/to/lib)

add_executable(app main.cpp)
target_link_libraries(app mylib)

四、Header-only 库(最简单)

例如:nlohmann/json、fmt(部分)

#include "nlohmann/json.hpp"

编译:

g++ main.cpp -o app -I./include

✅ 不需要链接 .so / .a


五、动态库 vs 静态库

类型 后缀 特点
静态库 .a 编进程序,体积大
动态库 .so 运行时加载,体积小

运行时找不到 .so:

export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH

六、常见问题

❌ 找不到头文件

  • 检查 -I 路径
  • 检查 #include 写法

❌ 找不到库

  • 检查 -L 和 -l
  • ldconfig 刷新:
sudo ldconfig

❌ 版本冲突

  • 用 CMake + vcpkg / conan

七、进阶(可选)

  • vcpkg(跨平台)
  • Conan(C++ 包管理)
  • Docker 固定环境

如果你有:

  • 具体库名(如 OpenCV / Boost / protobuf)
  • 用 g++ 还是 CMake
  • Ubuntu / CentOS

我可以给你一步到位的具体命令。

0 踩