What is Object Library?
什么是object library?
object library是多个object files合成的一个object file,可以被多个executable file方便
地使用。
我们知道,一种生成executable file的方式是,先根据source files生成相应的object files,
然后将生成的object files用linker链接起来,最后生成可运行的executable file,就像这样:
$ cc -g -c prog.c mod1.c mod2.c mod3.c
$ cc -g -o prog_nolib prog.o mod1.o mod2.o mod3.o
但是呢,有很多时候,我们或许会有一些source files被不止一个executable file用到。在这种
情况下,我们可以首先将source files生成相应的object files,然后,再将生成的object files
按需链接起来,生成不同的executable files。这样虽然节省了我们编译时间,但是又造成了另一个
问题,那就是我们仍然需要在链接阶段一个一个地列出object file的名字,而且我们在自己的机器上
会充满大量的object files。
因此为了解决这个问题,我们可以将多个object files打包成一个unit,这个unit就叫做
object library。
object library分为两种,static library和shared library。
其中shared library更加先进,而且相较于出现较早的static library,有很多优势。
注:以上内容基本相当于对“《The Linux Programming Interface》Chapter 41: Fundamentals of Shared Libraries 41.1 Object Libraries” 的翻译,更加具体详细的内容,请看原版。
以上。