这是承接上一篇文章《不简单的hello world值C标准库第一部分》。我们继续该主题的内容。
4. 库里面有什么
我们在上一节当中介绍了库是如何生成的,那么库里面有什么呢,关于这个问题可能有的同学会问了,你不是说了吗,里面不就是包含了我们写的程序的二进制CPU可以读懂的形式吗,亲爱的同学们,在上一节中主要是来讲述库如何生成的,所以这样说是为了为了让大家更容易的理解上一节,真实的情况是库里面不仅仅是包含了二进制指令,仅仅是指令是不够的,还需要的一项是什么呢,有的同学可能已经猜到了,那就是数据,关于库里面有什么同样不是能在这一小节中能完整描述的,我会在后面的文章给大家详细讲解,库里面到底有什么。敬请期待。
和任何东西一样,库也是有分类的。不用担心,库的分类很简单,就只有两种,动态库(Dynamic Library)和静态链接库(Static library)。
在Windows世界中,动态链接库就是大名鼎鼎的.dll结尾的文件,静态库是以.lib结尾的文件。
在Linux世界中,动态链接库是以.so结尾的文件,而静态库是以.a结尾的文件。
比如在Linux中,你有一个用来进行数学计算的库math,那么生成的动态库的名字就是libmath.so, 而对应的静态库的名字叫做libmath.a。如下图所以:
静态库
如图所示,这里希望强调的一点就是,同样的一份代码,我们即可以使用链接器(Linker)生成动态链接库,也可以生成静态链接库,至于是如何生成的,这两种库实现上有什么差别,同样的我会在下一篇文章当中给大家详细讲解。
可能又有同学继续问了,为什么这么麻烦的有两种库呢,又是动态链接库又是静态链接库的,这是很重要的一个问题ÿ