温馨提示×

ubuntu gcc如何添加库

小樊
50
2026-10-24 15:15:11
栏目: 智能运维

在 Ubuntu 下使用 gcc 添加(链接)库,通常分为 系统库、第三方库 和 自己写的库 几种情况。下面按常见用法说明。


一、链接系统已安装的库

1️⃣ 使用 -l 指定库名

例如使用数学库 libm.so:

gcc main.c -o main -lm

说明:

  • -l 后面跟 库名去掉 lib 前缀和扩展名
  • libm.so → -lm
  • libpthread.so → -lpthread

2️⃣ 指定库搜索路径(非默认路径)

如果库不在 /usr/lib 或 /lib:

gcc main.c -o main -L/path/to/lib -lmylib
  • -L:指定库目录
  • -l:指定库名

二、使用 pkg-config(推荐)

很多库(如 OpenCV、GTK、SDL)提供 .pc 文件:

gcc main.c -o main $(pkg-config --cflags --libs opencv)

查看是否安装:

pkg-config --list-all | grep opencv

三、链接自己写的静态库(.a)

1️⃣ 编译源文件

gcc -c mylib.c -o mylib.o

2️⃣ 生成静态库

ar rcs libmylib.a mylib.o

3️⃣ 使用静态库

gcc main.c -L. -lmylib -o main

四、链接自己写的动态库(.so)

1️⃣ 生成动态库

gcc -fPIC -shared mylib.c -o libmylib.so

2️⃣ 编译并链接

gcc main.c -L. -lmylib -o main

3️⃣ 运行前指定库路径

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./main

或安装到系统目录:

sudo cp libmylib.so /usr/local/lib
sudo ldconfig

五、包含头文件(-I)

如果头文件不在默认路径:

gcc main.c -I/path/to/include -L/path/to/lib -lmylib

六、常见示例汇总

# 数学库
gcc test.c -lm

# 多线程
gcc test.c -lpthread

# 指定路径
gcc test.c -I/include -L/lib -lmylib

如果你有 具体库名(如 OpenCV / boost / cuda)或报错信息,可以发出来,我可以给你更精确的命令。

0 踩