linux下静态库和动态库使用笔记

基础:

静态库

一般是libxxx.a这种形式,一般程序在编译的时候会被链接到目标代码中。这是使用静态库的好处,程序不需要再去依赖外部的库,因为一开始就已经被包含进去了。但这也是一把双刃剑,一般静态库比较大,这样也会导致程序比较大。一旦静态库被修改了,程序也需要重新编译。

动态库

动态库一般被命名为libxxx.so,顾名思义,动态库在编译的时候没有被编译进目标代码中,只有当运行到执行相关函数时才调用相关函数。这就意味着,修改动态库,程序不需要重新编译,而且程序也相对体积会小一点。因此,应该用哪种方式,还是见仁见智吧。

个人笔记:

1.链接库的时候,顺序是从右往左,记得把最基础的库放在命令的最右边。

2.如果同时链接动态库和静态库,它们含有相同名称函数的话,会优先调用动态库的,如果偏要用静态库的函数的话,需要一点设置,编译时添加参数:-static 。这有点暴力,会导致这个参数后的所有的库都是用静态链接的方式,这里有可能会引发错误,如果后面还包含了动态库的话。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容