在 Debian 上用 gcc 链接静态库(.a 文件),常见做法如下。
静态库一般是:
libxxx.a
例如:libmylib.a
假设:
main.clibmylib.a.)gcc main.c libmylib.a -o main
✅ 最简单,适合自己写的库
-l 和 -L(推荐)gcc main.c -L. -lmylib -o main
说明:
-L.:告诉 gcc 在当前目录找库-lmylib:链接 libmylib.alib 和 .a例如链接静态 libm:
gcc main.c -lm -static -o main
⚠️ -static 会让所有库都静态链接
gcc main.c -Wl,-Bstatic -lmylib -Wl,-Bdynamic -o main
含义:
-Wl,-Bstatic:后面用静态库-Wl,-Bdynamic:恢复动态链接gcc 是从左到右解析符号:
✅ 正确:
gcc main.c -lmylib
❌ 错误:
gcc -lmylib main.c
报错:
cannot find -lmylib
解决:
libmylib.a-L路径ldd main
not a dynamic executable → 静态.so → 动态如果你有:
可以直接贴出来,我可以帮你写准确命令。