linux共享库的编译
来源:互联网 发布:长城显示器怎么样 知乎 编辑:程序博客网 时间:2024/05/21 09:04
linux下的库有两种:静态库和共享库。共享库,一般也被称为动态链接库。
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大,一般以libxxxx.a形式存在。
共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小,一般以libxxxx.so的文件形式存在。
库是别人写好的现有的,成熟的,可以复用的代码。实际项目开发中,每个程序都要依赖很多基础的底层库,不需要每个程序员去重新发明轮子,因此库的存在意义非同寻常。
共享库的好处是,不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例。
ldd命令可以查看一个可执行程序依赖的共享库,
例如:
要自己编写一个动态链接库,以供多个进程或其他程序员使用,分为以下两步:
(1)编写代码,包括头文件和源文件;
(2)将一步中编写的源代码文件编译成一个动态库:libXXXX.so。
下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test.c(实际项目中一般有更多头文件和源文件,我们稍后将这几个文件编译成一个动态库libtest.so),以及一个测试文件:test_main.c 。
共享库头文件:
#include "stdio.h"void test();
源文件:test.c:
void MyTestFunction(){ printf("this is in test for shared object... ");}
最后,将以上文件编译成一个动态链接库libtest.so,以方便别人可以直接使用这三个接口:
$ gcc test.c -fPIC -shared -olibtest.so
到此为止,大功基本高成,动态链接库已经成功生成了。
- linux共享库的编译
- linux 共享库的编译和连接
- linux下编译不能打开共享库
- 编译GNU/Linux共享库, 为什么要用PIC编译?
- linux 编译动态库(共享库 .so)的方法;和make 的命令行使用达到动态库连接编译
- Linux 下编译安装软件,找不到共享库 xx.so 的解决办法
- Linux 下编译安装软件,找不到共享库 xx.so 的解决办法
- Linux 下编译安装软件,找不到共享库 xx.so 的解决办法
- 虚拟机linux共享文件的编译错误总结
- 共享库的编译及使用
- 共享库的编译、链接和运行
- linux共享库的使用
- Linux共享库的创建
- linux共享库的查找
- LINUX 共享库的管理
- Linux的共享库so
- linux C/C++之库编译静态库、共享库
- 在Linux使用GCC编译C语言共享库
- KVO(NSKeyValueObserving)、KVC(NSKeyValueCoding)作用浅谈
- xml提取数据
- WCF教程系列(1)-创建第一个WCF程序
- 调试技巧 —— 如何利用windbg + dump + map分析程序异常
- openRtsp分析4
- linux共享库的编译
- TOP命令输出完全解释
- xml提前数据
- iOS 打包应用程序
- 关于onbeforeunload和onunload两个事件
- Tomacat6.0 配置開啟gzip壓縮,以及測試是否成功的類
- VC++中字符串转换CString, char*, BSTR, 多字节,unicode字符集转换的问题
- 异步的HTTP POST与GET请求例子
- 基于JQuery的实现图片轮播效果(焦点图)