链接静态库文件时的搜索路径
经测试,链接静态库的时候静态库的搜索路径包括/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)查找