linux编译静态库和动态链接库
2012-11-13 13:50
253 查看
库可以有三种使用的形式:静态、共享和动态。静态库的代码在编译时就已连接到开发人员开发的应用程序中,而共享库只是在程序开始运行时才载入,在编译时, 只是简单地指定需要使用的库函数。动态库则是共享库的另一种变化形式。动态库也是在程序运行时载入,但与共享库不同的是,使用的库函数不是在程序运行开 始,而是在程序中的语句需要使用该函数时才载入。动态库可以在程序运行期间释放动态库所占用的内存,腾出空间供其它程序使用。由于共享库和动态库并没有在
程序中包括库函数的内容,只是包含了对库函数的引用,因此代码的规模比较小。
静态库的编译
1.g++ -c xx.cpp //将xx.cpp生成xx.o目标文件。And,你有xx.cpp,也应该对应有xx.h来声明
2.ar crv libxx.a xx.o //ar是建立或修改备存文件的命令,参数c表示建立备存文件,r表示插入备存文件,v表示显示执行过程。
3.ranlib libxx //不是必要的,该步是为函数库生成一个内容列表
动态库的编译
只要在编译时添加选项即可
1.g++ xx.cpp -fPIC -shared -o libxx.so
//-fPIC 表示编译为位置独立的代码 -shared表示编译成动态库
最后注明:在想编译成ARM体系的库也很简单,用arm-linux-g++(或其它arm编译器)代替上面的g++即可,原理一样,选项也一样,编译出来的库就是可以用在ARM板上用的
程序中包括库函数的内容,只是包含了对库函数的引用,因此代码的规模比较小。
静态库的编译
1.g++ -c xx.cpp //将xx.cpp生成xx.o目标文件。And,你有xx.cpp,也应该对应有xx.h来声明
2.ar crv libxx.a xx.o //ar是建立或修改备存文件的命令,参数c表示建立备存文件,r表示插入备存文件,v表示显示执行过程。
3.ranlib libxx //不是必要的,该步是为函数库生成一个内容列表
动态库的编译
只要在编译时添加选项即可
1.g++ xx.cpp -fPIC -shared -o libxx.so
//-fPIC 表示编译为位置独立的代码 -shared表示编译成动态库
最后注明:在想编译成ARM体系的库也很简单,用arm-linux-g++(或其它arm编译器)代替上面的g++即可,原理一样,选项也一样,编译出来的库就是可以用在ARM板上用的
相关文章推荐
- linux 下静态库和动态库的创建,编译,和使用
- linux下gcc编译静态库和动态库
- ACE的Linux移植及静态库编译
- 在linux下制作静态库和动态链接库的方法
- 自己在linux上编译、链接、动态库和静态库的学习笔记
- Linux 编译静态链接库与动态链接库的方法
- linux编译动态库和静态库的makefile示例
- linux下静态库、动态库编译及makefile书写
- linux下gcc-编译多个文件为静态库
- (linux)eclipse编译静态库 .a
- 编译链接------Linux环境下c语言静态链接库和动态链接库创建和使用
- linux 动态链接库编译
- Linux 源码编译与程序运行期间静态库与动态库搜索路径
- linux 动态库和静态库编译链接方法
- Linux下编译静态库和动态库
- Linux编译多个不同目录下的文件以及静态库、动态库的使用
- linux下通过jni编译CUDA代码生成动态链接库遇到的问题 nvcc -fPIC
- linux---动静态库编译及使用
- Linux下将Tinyxml编译为静态库
- Linux操作 gcc编译过程 制作静态库、动态库