我一直在阅读关于linux库的话题 http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
提到:
“好处是链接时不需要声明每个目标文件,因为开发人员可以引用单个库”
我不是在遵循这个陈述。我想知道是否有人可以得到进一步的解释或一个例子吗?
由于
答案 0 :(得分:2)
这不是世界上最好的措辞,IIUC,并且有点误导。恕我直言,而不是
好处是链接时不需要声明每个目标文件,因为开发人员可以引用个人库
应该说
好处是链接时不需要声明每个目标文件,因为开发人员可以引用整个库(作为命名实体)
基本上,它意味着以下内容。在没有库的情况下,现在是库的作者可以简单地构建一个目标文件列表,如下所示:
a0.cpp -> a0.o
a1.cpp -> a1.o
...
然后她可以在文档中写“如果你想要函数x,y和z”,那么你需要链接a3.o(因为它包含x和z),a42.o(对于y),还有a23.o,a15.o和a72.o,因为它们包含必要的底层部分。
这当然是笨拙的。正如您的链接所解释的,一种更为理智的方法是从通用功能和类的状态创建单个库。指令变成“如果你想要射击foo外星人的功能,与foo_alien_shooting库链接”。