静态库和共享库

1、静态库

静态库就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。

Paste_Image.png

2、共享库

共享库以.so结尾. (so ==share object) 在程序的链接时候并不像静态库那样在拷贝使用函数的代码,而只是作些标记。然后在程序开始启动运行的时候,动态地加载所需模块。所以,应用程序在运行的时候仍然需要共享库的支持。 共享库链接出来的文件比静态库要小得多。

Paste_Image.png
Paste_Image.png

note:gcc 默认优先寻找共享库进行连接动态链接,找不到再寻找静态库进行链接

你可能感兴趣的:(静态库和共享库)