我用几个创建了我的lib.a文件
gcc -c file.c -o file.o然后
ar sr lib / libtest.a file1.o file2.o file3.o确认
ar -t lib / libtest.afile1.ofile2.ofile3.o但是当我试着……
订单与图书馆有关 - 尝试:
gcc test.c -o test lib/libtest.a
基本上,链接器在输入文件列表中遇到它时读取库(这可能不是确切的工作原理,但我认为它可以作为经验法则很好)并且将解决剩余的任何仍然未定义的引用。当它移动到下一个输入时,它不会再查看该库,因为它会沿途拾取任何新的未解析的引用。
(注意:有一些链接器选项可以改变这种行为,但它们似乎很少使用,可能有它们自己的缺点,所以我不在这里讨论它们。这种问题通常通过重新排序链接器的输入来解决文件列表)。