.a代表的是静态函数库,当同时销蚂运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。
.so是共享函数库,可以克服.a函数库的不足。当一个程序使用共享函数库时,程序本身丛郑不再包含函数代码,而只是引用共享代码,当实际调用时,共享库才被加载到内存中。
.a文件类似于Windows下的.lib文件,.so文件类似于Windows下面的.dll文件,这样就好理解了。
o: 编译的目标文件 a: 静态库,其实就是把若干o文件打了个包 so: 动态链接库(共享库) lo: 使用libtool编译出的目陪凳标文件,其实就是在o文件中添加了一些信息 la: 使用libtool编译出的库文件,其实是个文本文件,记基乱含录同名动态库和静态库的相关信息。
我们通常把一些公用函数制作成函数库,供搏笑其它程序使用,函数库分为静态库和动态库两种,静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)