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

2017-09-24  本文已影响0人  邦柳

基础:

静态库

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

动态库

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

个人笔记:

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

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

上一篇下一篇

猜你喜欢

热点阅读