动态库与静态库
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 可执行文件名
程序库:包含了一些通用函数的数据和二进制可执行机器码的文件,其单独不能够运行,但是如果将其与其他的可执行程序结合起来就可以执行了
静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的,后缀名:.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 可执行文件名
相关文章推荐
- Linux中有两类函数库 分别是静态库和动态库
- Linux学习笔记7——linux中的静态库和动态库
- Linux静态库和动态库的分析
- Linux中创建静态库和动态库
- NDK 编译和使用静态库、动态库
- linux下制作静态库和动态库的方法
- Linux中如何创建静态库和动态库
- linux --> 动态库和静态库
- C调用C++动态库,静态库
- 使用vs2010生成和使用动态库和静态库
- Windows编译动态库时选择是否同时导出静态库
- 在Linux中创建静态库和动态库
- 静态库和动态库
- gcc生成静态库和动态库
- 理解静态库和动态库
- 用CMake创建动态库和静态库(转)
- iOS 静态库,动态库与 Framework
- Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;gcc/g++与库相关的参数-L,-l,-f
- Linux 静态库与动态库搜索路径设置
- C++静态库与动态库