您的位置:首页 > 运维架构 > Linux

动态库与静态库

2016-09-28 22:06 78 查看
一、库的含义

程序库:包含了一些通用函数的数据和二进制可执行机器码的文件,其单独不能够运行,但是如果将其与其他的可执行程序结合起来就可以执行了

静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.a

动态库:是在执行程序启动时加载到执行代码中,后缀名:.so

二、静态库与动态库区别:

动态库只有在使用它的程序执行时才被链接使用,而不是将需要的部分直接编译入可执行文件中,并且一个动态库可以被多个程序使用故可称为共享库,而静态库将会整合到程序中,因此在程序执行时不用加载静态库。 从而可知,链接到静态库会使你的程序臃肿,并且难以升级,但是可能会比较容易部署。而链接到动态库会使你的程序轻便,并且易于升级,但是会难以部署。

三、相关建立及使用方法

静态库的创建:

创建:

         gcc –c 源文件.c

         ar rcs 静态库名 目标文件1 目标文件2

         rc:静态库不存在,就创建该库文件

         s:更新库文件

静态库的使用:

静态库创建成功后,然后对全局变量和函数进行声明,在编译的时候加上库文件就行!

gcc  -o file flie.c –L. -lname

动态库的创建:

gcc  -shared –fPIC –o 库名.so 源文件.c

动态库的使用:

gcc 源文件.c ./ 库名.so –o 可执行文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息