linux编译生成动态链接库与静态链接库
来源:互联网 发布:面向对象编程语言有哪些 编辑:程序博客网 时间:2024/05/02 03:01
这里以sqlite源代码为例,我们有时候需要用sqlite作为嵌入式存储引擎,但是我的opensuse上又不能自动yast安装sqlite的开发包,我们就自行编译链接库吧。
首先下载sqlite3的源代码(共四个文件:shell.c,sqlite3.c,sqlite3ext.h,sqlite3.h)。
1,编译静态链接库libsqlite3.a
gcc -c sqlite3.c shell.car cr libsqlite3.a sqlite3.o shell.o指定-c参数生成目标文件
2,编译动态链接库libsqlite3.so
gcc -c sqlite3.c shell.c -fPICgcc -shared -fPIC -o libsqlite3.so *.o这里注意需要添加-fPIC参数重新编译源代码
然后目录下就有了两个链接库可用了。在编写程序用ldd查看链接库依赖关系如果缺少依赖的话,可以用下面的语句设置环境变量
export LD_LIBRARY_PATH=/usr/local/lib/
这样,所有的依赖包都找到了,如下所示
ciaos@ciaos-ubuntu:~/Downloads/mongodb$ ldd /usr/bin/sqlite3 linux-gate.so.1 => (0x00731000)libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0x00110000)libreadline.so.6 => /lib/i386-linux-gnu/libreadline.so.6 (0x004e2000)libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00ba1000)libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x0064d000)libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x009b0000)libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0x00707000)/lib/ld-linux.so.2 (0x00796000)
- linux编译生成动态链接库与静态链接库
- Linux 静态链接库与动态链接库之一:静态链接库生成及使用
- Linux 静态链接库与动态链接库之一:静态链接库生成
- Linux 静态链接库与动态链接库之一:静态链接库生成
- Linux 静态链接库与动态链接库之二:动态链接库生成及使用
- Linux 静态链接库与动态链接库之二:动态链接库生成
- Linux 静态链接库与动态链接库之二:动态链接库生成
- 静态库/动态库的 生成与编译链接
- linux C编程入门之静态链接库、动态链接库的编译与链接
- linux 动态静态链接库生成与调用方法
- Linux 静态、动态链接库编译
- linux 编译静态链接库和动态链接库
- Linux下的动态链接库与静态链接库的生成与使用
- Linux编译cximage生成动态链接库
- 静态编译,动态编译,静态链接库,动态链接库
- Linux下Makefile中动态链接库和静态链接库的生成与调用
- Linux 编译静态链接库与动态链接库的方法
- Linux 静态与动态链接库
- 如何安装/卸载APK
- 伺服系统
- DIV CORNER 圆角实现
- 单身快乐(致一个人的情人节)
- 选择排序算法实现(Java)
- linux编译生成动态链接库与静态链接库
- java mail发送邮件可群发并带附件
- opencv拟合直线并在屏幕上绘出
- 我对Qt中信号与槽的误解!!
- 如何添加AP中要使用的第三方JAR文件
- PID常用口诀
- 1.每颗继承树两张表:Object,hbm
- Android默认设置保存在哪里
- 如何确认一个应用程序的安装位置