linux-静态库和动态库
2017-01-13 12:14
197 查看
1. 生成方式
静态库:
首先将源文件编译成目标文件:gcc –c test.c -o test.o
然后生成静态库:ar –rc libstatic.a test.o
共享库:
首先将源文件编译成目标文件:gcc –c test.c -o test.o
生成共享库:gcc –fPIC –shared –o libshared.so test.o
静态库的链接方法:
gcc –o software_name -L. –lstatic main.c (默认库在当前文件夹)
共享库的链接方法:
gcc –o software_name -L. –lshared main.c(默认库在当前文件夹)
2. 存在周期
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
3.加载时间
二者的不同点在于代码被载入的时刻不同。
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。
共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。
4.如何使用
静态库直接编译到程序里面;
动态库可以通过设置环境变量来告知其地址使用:
export LD_LIBRARY_PATH='/home/lib'
注意:若静态库和动态库同名, gcc命令将优先使用动态库。
静态库:
首先将源文件编译成目标文件:gcc –c test.c -o test.o
然后生成静态库:ar –rc libstatic.a test.o
共享库:
首先将源文件编译成目标文件:gcc –c test.c -o test.o
生成共享库:gcc –fPIC –shared –o libshared.so test.o
静态库的链接方法:
gcc –o software_name -L. –lstatic main.c (默认库在当前文件夹)
共享库的链接方法:
gcc –o software_name -L. –lshared main.c(默认库在当前文件夹)
2. 存在周期
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
3.加载时间
二者的不同点在于代码被载入的时刻不同。
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。
共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。
4.如何使用
静态库直接编译到程序里面;
动态库可以通过设置环境变量来告知其地址使用:
export LD_LIBRARY_PATH='/home/lib'
注意:若静态库和动态库同名, gcc命令将优先使用动态库。
相关文章推荐
- 在Linux中创建静态库和动态库
- linux下c/c++编译器和调试器以及静态库、动态库使用汇总
- 在Linux中创建静态库和动态库
- 关于Linux静态库和动态库的分析
- 关于Linux静态库和动态库的分析
- Linux动态库和静态库比较
- linux下动态库与静态库
- Linux中静态库和动态库的创建和使用
- Static library & dynamic library -- linux系统下的静态库与动态库
- [Linux]链接,静态库和动态库
- 在Linux中创建静态库和动态库
- Linux中有两类函数库 分别是静态库和动态库
- 关于Linux静态库和动态库的分析
- linux下制作静态库和动态库的方法
- 在Linux中创建静态库和动态库
- linux下的静态库和动态库的编译
- Linux中的静态库和动态库
- Linux静态库和动态库的分析
- linux下静态库、动态库的编译和使用
- linux下静态库、动态库相关问题总结