
a: 静态库,其实就是把若干o文件打了个包
so: 动态链接库(共享库)
lo: 使用libtool编译出的目标文闭绝件,其实就凳态仔是在o文件中添加了一些信息
la: 使用libtool编译出的库文件,其实是个文本文件枣汪,记录同名动态库和静态库的相关信息
linux命令 ldd,静态库 .so,.a,.laldd不是一个可执行程序,而只是一个shell脚本
在linux环境下,c++编译得到库文件后缀包括:.so or .a or .la,
当然,linux下文件的类型是不依赖于其后缀名的,后缀及其含义:
.so 为共享库 : 动态库拿裤亮(shared library/shared object/dynamic link library),
.a为静态库 : archive / static library
.la为libtool自动生成的一些共享库,可以用vi编辑查看,主要记录了一些配置信息。可纯陪以用消宽如下命令查看*.la文件的格式 file *.la
它们的具体区别并不算太大,只是链接后的不同,具体区别如下:
o:是编译的中间目标文件将多个中间目标文件,可以链接成可执行文件。
so:文件表示动态链接库。
a:代表的逗竖带是静态函数库,当纤铅同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。
lo:使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息。
la:使用libtool编译出的库文件,其实是个文本文件,记录同名动态山芦库和静态库的相关信息
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)