在 Ubuntu 下使用 gcc 添加(链接)库,通常分为 系统库、第三方库 和 自己写的库 几种情况。下面按常见用法说明。
-l 指定库名例如使用数学库 libm.so:
gcc main.c -o main -lm
说明:
-l 后面跟 库名去掉 lib 前缀和扩展名libm.so → -lmlibpthread.so → -lpthread如果库不在 /usr/lib 或 /lib:
gcc main.c -o main -L/path/to/lib -lmylib
-L:指定库目录-l:指定库名很多库(如 OpenCV、GTK、SDL)提供 .pc 文件:
gcc main.c -o main $(pkg-config --cflags --libs opencv)
查看是否安装:
pkg-config --list-all | grep opencv
gcc -c mylib.c -o mylib.o
ar rcs libmylib.a mylib.o
gcc main.c -L. -lmylib -o main
gcc -fPIC -shared mylib.c -o libmylib.so
gcc main.c -L. -lmylib -o main
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./main
或安装到系统目录:
sudo cp libmylib.so /usr/local/lib
sudo ldconfig
如果头文件不在默认路径:
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)或报错信息,可以发出来,我可以给你更精确的命令。