温馨提示×

Ubuntu怎么配置C++库文件

小樊
41
2026-07-18 07:17:36
栏目: 编程语言

在 Ubuntu 上配置 C++ 库文件,通常分为几种常见场景。下面按由浅入深、从“使用库”到“自己写库”来说明,你可以按需查看。


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

1️⃣ 安装开发库(以常用库为例)

sudo apt update
sudo apt install build-essential

安装常用库示例:

# OpenCV
sudo apt install libopencv-dev

# Boost
sudo apt install libboost-all-dev

# SSL
sudo apt install libssl-dev

# 数学库(一般自带)
sudo apt install libm-dev

2️⃣ 编译时链接库

假设使用 libexample.so

// main.cpp
#include <example.h>

int main() {
    example_func();
}

编译:

g++ main.cpp -lexample -o main

常见参数说明:

参数 作用
-I 指定头文件路径
-L 指定库文件路径
-l 链接库(去掉 lib 和 .so)

示例:

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

二、使用自己编译的第三方 C++ 库

1️⃣ 下载并编译库(以 CMake 为例)

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

默认安装位置通常是:

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

2️⃣ Ubuntu 中让系统找到库

✅ 方法一:更新动态库缓存(推荐)

sudo ldconfig

如果库在 /usr/local/lib 仍找不到,检查:

cat /etc/ld.so.conf.d/*.conf

必要时添加:

echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

✅ 方法二:临时设置环境变量

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

三、自己写一个 C++ 库(静态 / 动态)

1️⃣ 写库代码

// mylib.h
#pragma once
void hello();
// mylib.cpp
#include <iostream>
#include "mylib.h"
void hello() {
    std::cout << "Hello Library" << std::endl;
}

2️⃣ 编译为静态库(.a)

g++ -c mylib.cpp -o mylib.o
ar rcs libmylib.a mylib.o

使用:

g++ main.cpp libmylib.a -o main

3️⃣ 编译为动态库(.so)

g++ -fPIC -shared mylib.cpp -o libmylib.so

使用:

g++ main.cpp -L. -lmylib -o main

运行前:

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./main

四、用 CMake 管理 C++ 库(强烈推荐)

示例 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(mylib)

add_library(mylib SHARED mylib.cpp)

install(TARGETS mylib DESTINATION lib)
install(FILES mylib.h DESTINATION include)

使用:

mkdir build && cd build
cmake ..
make
sudo make install

五、常见问题排查

❌ 找不到头文件

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

✅ 解决:

g++ -I/path/to/include

❌ 找不到库

cannot find -lxxx

✅ 解决:

g++ -L/path/to/lib

❌ 运行时找不到 .so

error while loading shared libraries

✅ 解决:

sudo ldconfig

六、总结一句话

Ubuntu 配置 C++ 库 = 安装 / 编译库 → 指定头文件和库路径 → 链接 → 让系统找到动态库


如果你有具体库名(如 OpenCV、Boost、Eigen、CUDA、自己写的库),可以告诉我,我可以给你精确到命令级别的配置方案

0