linux编译.a .so文件区别

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: linux编译.a .so文件区别

.a 就是 archive
.so 就是 shared object

Archive 相当于某个人(这个可能是你也可能是别人)在编一个程序的时候中途留下了很多 .o 文件没用光.怎么办?Archive 起来,以后写别的程序用得着.所以你的程序如果用了 archive,连接到的是“静态”库,库好像已经和你的程序化为一体,不分彼此.

Shared object 呢?你的心态又不一样了.你写程序,写着写着发现很多程序都要用到同一段代码,怎么办?直接 copy 过去省事啊,不过维护起来麻烦.用 archive?也还行,只是有点浪费空间了.那怎么办?一拍大腿,点子来了,share 一下这个 object,这样既方便维护,又节省空间.

现实环境里两种情况都有,自己想想清楚每一种的目的是要干啥就行了.

=========================

.o 就相当于windows里的obj文件 
.a 是好多个.o合在一起,用于静态连接 
.so 是shared object,用于动态连接的,和dll差不多

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: linux编译.a .so文件区别

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: