Linker 为什么';把我自己的C库文件放入ld搜索路径工作?

Linker 为什么';把我自己的C库文件放入ld搜索路径工作?,linker,Linker,目前我有两个文件 main.c libxxx.a main.c引用了libxxx.a中可重定位对象文件的源代码中定义的一些函数 现在,以下命令成功编译main.c并将其链接到libxxx.a: gcc -o prog main.c libxxx.a 但是如果我将libxxx.a放入ld的一个搜索路径中,与libc.a位于同一目录中 gcc -o prog main.c 就是不管用。在目录中搜索时,ld似乎找不到此存档文件。有人能告诉我为什么会这样吗 但是如果我将libxxx.a放入lb l

目前我有两个文件

main.c
libxxx.a
main.c引用了libxxx.a中可重定位对象文件的源代码中定义的一些函数

现在,以下命令成功编译main.c并将其链接到libxxx.a:

gcc -o prog main.c libxxx.a
但是如果我将libxxx.a放入
ld
的一个搜索路径中,与libc.a位于同一目录中

gcc -o prog main.c
就是不管用。在目录中搜索时,
ld
似乎找不到此存档文件。有人能告诉我为什么会这样吗

但是如果我将libxxx.a放入lb linker的一个搜索路径中,与libc.a的目录相同

gcc-o prog main.c

就是不管用

这是预期和期望的:您不会希望您编写的每个程序都与安装在系统搜索路径中的每个库相链接。你想要的是:

gcc -o prog main.c -lxxx
也就是说:将库复制到
/usr/lib
允许链接器在不使用任何额外搜索参数的情况下找到它,但您仍然必须告诉链接器您要链接到
libxxx