温馨提示×

Linux C++库怎么配置

小樊
44
2026-07-17 05:17:54
栏目: 编程语言

在 Linux 下配置 C++ 库,通常分为 系统库第三方库自己写的库 三种情况。下面按常见场景给你一个完整、实用的说明。


一、使用系统已安装的 C++ 库(最常见)

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

sudo apt update
sudo apt install libxxx-dev

例如:

sudo apt install libssl-dev
sudo apt install libcurl4-openssl-dev
sudo apt install libboost-all-dev

注意:

  • libxxx:运行时库
  • libxxx-dev:开发头文件(编译必须)

2️⃣ 在 C++ 代码中使用

#include <openssl/ssl.h>
#include <curl/curl.h>

3️⃣ 编译时链接库

g++ main.cpp -o app -lssl -lcrypto

或:

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

二、使用 pkg-config 管理库(推荐)

很多库支持 pkg-config

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

编译示例:

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

三、手动配置第三方库(未安装到系统)

情况:下载了源码或预编译库

目录结构示例:

mylib/
├── include/
│   └── mylib.h
├── lib/
│   └── libmylib.so

编译命令

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

解释:

  • -I:头文件路径
  • -L:库文件路径
  • -l:库名(去掉 lib.so

四、配置环境变量(运行时库)

如果库不在系统路径,运行时可能报错:

error while loading shared libraries

临时解决

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

永久解决(推荐)

sudo vim /etc/ld.so.conf.d/mylib.conf

加入:

/path/to/lib

然后:

sudo ldconfig

五、使用 CMake 配置 C++ 库(工程化推荐 ✅)

示例 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(demo)

find_package(OpenSSL REQUIRED)

add_executable(demo main.cpp)
target_include_directories(demo PRIVATE ${OPENSSL_INCLUDE_DIR})
target_link_libraries(demo PRIVATE OpenSSL::SSL OpenSSL::Crypto)

构建:

mkdir build
cd build
cmake ..
make

六、常见 C++ 库安装示例

安装命令
Boost sudo apt install libboost-all-dev
OpenCV sudo apt install libopencv-dev
SQLite sudo apt install libsqlite3-dev
fmt sudo apt install libfmt-dev
spdlog sudo apt install libspdlog-dev

七、常见问题排查

❌ 找不到头文件

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

✅ 没装 -dev 包或 -I 路径错了


❌ 找不到库

undefined reference to ...

✅ 忘记 -lxxx-L 路径错误


❌ 运行时找不到 .so

✅ 检查 LD_LIBRARY_PATHldconfig


八、我可以更具体地帮你

你可以直接告诉我:

  1. 用的是 Ubuntu / CentOS / Arch
  2. 用的是 g++ / clang / CMake
  3. 是哪个库(如 OpenCV、Boost、自己写的)?
  4. 报错信息是什么?

我可以一步一步帮你配 ✅

0