什么是静态链接库?

静态链接库,即static library或 statically-linked library。和动态链接库,即dynamic library 或dynamicly-linked library相对,是Windows和Linux系统中比较常用的库文件。Windows中分别用SLL和DLL文件表示,Linux中分别是.a和.so文件.

静态链接库实际是一些object files(.o文件)和头文件的压缩包,通过GNU工具链中的ar(archiver)程序创建。

静态链接库、动态链接库和共享库

那为何还要有动态链接库呢?静态练级库虽然能很好的节省编译时间。对于一个简单的ls程序,我们需要有屏幕输出,有字符串和格式操作,有文件系统访问等等函数,都要在一个程序中。此时,这个程序会很大。一个小小的ls可能都会有好几兆。如果还有个rm程序,同样也需要屏幕输出,文件系统访问。那么这两个东西,我们可以放到两个库文件里,在执行ls,或者rm的时候,用到屏幕输出操作,就将相应的函数对应的机器码载入内存中,执行。然后再从内存中释放。接着载入文件系统访问的相关函数。这样我们的程序就能变小很多。这种可以动态装载到内存中的库文件就是动态链接库了。Windows下的DLL文件就是动态链接库。

Continue reading »

 

先看图

大肠杆菌和Linux系统的控制网络对比

大肠杆菌和Linux系统的控制网络对比

图片来自《科学松鼠会》,很棒的探索新知的网站:)

生物信息学里把DNA序列看成生物体的操作系统,这张图左侧是大肠杆菌的控制网络,右侧是Linux系统的。 Continue reading »

2009-2011© 编译点滴 Suffusion theme by Sayontan Sinha

无觅相关文章插件,快速提升流量