链接静态库文件时的搜索路径

经测试,链接静态库的时候静态库的搜索路径包括/lib;/lib64;/usr/lib;/usr/lib64/;/usr/local/lib;/usr/local/lib64,

静态库文件完整的搜索顺序:

比如我们要生成的最终可执行文件叫main 主程序源代码叫main.c,生成好的库文件叫做kkk库,

(1):

cc -o main main.c  –lkkk(再说一遍,此命令就是将main.c源代码与其所依赖的名为kkk的库文件链接,形成最终的可执行文件)

如果我们有定义环境变量LIBRARY_PATH,则现在这个环境变量定义的目录下寻找libkkk.so的文件,找不到或者没有定义环境变量的情况下则依次在/lib64;/usr/lib64/;/usr/local/lib64;/lib;/usr/lib;/usr/local/lib;下找libkkk.so文件,如果还是没找到,那么再翻回来重新在环境变量目录/lib64;/usr/lib64/;/usr/local/lib64;/lib;/usr/lib;/usr/local/lib;下找libkkk.a文件

如果还没找到则报错

(2)

cc -o main main.c -L. –lkkk(此命令与(1)相比增加了L参数)

则在上面的查找顺序的基础上添加了本地(或其他目录,cc -o main main.c -L其他目录 –lkkk)查找

原文地址:https://www.cnblogs.com/saolv/p/9649688.html