通常,库是可以在多个程序中使用的目标文件的集合。
在您的示例中没有优势,但是您可能已经做到了:
ar rcs liboneandtwo.a one.o two.o
然后,链接程序变得更加简单:
gcc -L. prog.c -loneandtwo
这实际上是包装问题。您是否有一组对象文件,它们自然地形成了一组相关功能,可以在多个程序中重用?如果是这样,则可以将它们明智地存档到静态库中,否则可能没有任何优势。
最后一个链接步骤有一个重要区别。您链接的任何目标文件都将包含在最终程序中。库中的目标文件仅在它们有助于解析其他目标文件中任何未定义符号的情况下才包括在内。如果没有,它们将不会链接到最终的可执行文件中。



