在 Ubuntu 下使用 gcc 添加库路径,通常有两种方式:编译时指定库路径,以及运行时指定库路径。下面分别说明。
一、编译时添加库路径(链接阶段)
1️⃣ 使用 -L 指定库目录
gcc main.c -o main -L/path/to/lib -lmylib
-L/path/to/lib:告诉 gcc 去哪里找.so或.a文件-lmylib:链接libmylib.so或libmylib.a
2️⃣ 使用环境变量(临时)
export LIBRARY_PATH=/path/to/lib
gcc main.c -o main -lmylib
⚠️ LIBRARY_PATH 只影响编译链接阶段
二、运行时添加库路径(程序执行阶段)
如果程序依赖动态库(.so),运行时也要能找到库。
1️⃣ 使用 -Wl,-rpath(推荐)
gcc main.c -o main -L/path/to/lib -lmylib -Wl,-rpath,/path/to/lib
- 把库路径写进可执行文件
- 不依赖环境变量
2️⃣ 使用 LD_LIBRARY_PATH(临时)
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
./main
3️⃣ 系统级配置(永久)
sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/path/to/lib
然后执行:
sudo ldconfig
三、头文件路径(顺便补充)
如果是 头文件(.h)路径:
gcc main.c -I/path/to/include -o main
或:
export C_INCLUDE_PATH=/path/to/include
四、常见示例
gcc main.c -I/opt/mylib/include \
-L/opt/mylib/lib \
-lmylib \
-Wl,-rpath,/opt/mylib/lib \
-o main
如果你有具体库(如 OpenCV、CUDA、自定义 .so),可以告诉我,我可以给你更精确的命令。