在 Linux 下配置 C++ 库,通常分为 系统库、第三方库 和 自己写的库 三种情况。下面按常见场景给你一个完整、实用的说明。
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:开发头文件(编译必须)
#include <openssl/ssl.h>
#include <curl/curl.h>
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_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
| 库 | 安装命令 |
|---|---|
| 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_PATH 或 ldconfig
你可以直接告诉我:
我可以一步一步帮你配 ✅