linux下的动态链接库和静态链接库到底是个什么鬼

2024-12-16 09:01:29
推荐回答(1个)
回答1:

Linux中动态链接库是.so为后缀的文件,静态链接库是.a为后缀的文件,.a和.so文件都叫做函数库文件。库是一组预先编译好的函数的集合,库文件的名字以lib开头,随后的部分指明这是什么库(例如libc代表C语言库,libm.a的m代表数学库)。
.a静态函数库:当同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。
.so共享函数库:可以克服.a函数库的不足。当一个程序使用共享函数库时,程序本身不再包含函数代码,而只是引用共享代码,当实际调用时,共享库才被加载到内存中。
.a文件类似于Windows下的.lib文件,.so文件类似于Windows下面的.dll文件,这样就好理解了。