Linux中的动态链接库使用记录
2013-08-16 17:08
120 查看
1.首先创建了一个文件shareTest.c
2.编译为so文件gcc -shared -fPIC -o libshareTest.so shareTest.c,fPIC的意思是与地址无关代码
这样就出现了 libshareTest.so
3.编辑一个文件test.c
4.编译:gcc test.c -o test -L/home/zxx/experiment/ -lshareTest
5.运行:./test,出错,提示错误为 error while loading shared libraries: libshareTest.so: cannot open shared object file: No such file or directory
6.分析原因,虽然编译的时候指定了动态链接库的路径,但是在运行的时候,系统又去/usr/lib寻找 libshareTest.so,因此我们还要指定运行时动态链接库路径
4.2编译:gcc test.c -o test -L/home/zxx/experiment/ -Wl,-rpath,/home/zxx/experiment/ -lshareTest
5.2运行:./test 成功鸟~!
#include <stdio.h> void Say() { printf("Say Hello\n"); } void Look() { printf("Look at me\n"); } void Hear() { printf("Hear a song\n"); }
2.编译为so文件gcc -shared -fPIC -o libshareTest.so shareTest.c,fPIC的意思是与地址无关代码
这样就出现了 libshareTest.so
3.编辑一个文件test.c
#include <stdio.h> int main() { int a; int b = 0; char c; char d = 'a'; printf("Hello\n"); Say(); Look(); }
4.编译:gcc test.c -o test -L/home/zxx/experiment/ -lshareTest
5.运行:./test,出错,提示错误为 error while loading shared libraries: libshareTest.so: cannot open shared object file: No such file or directory
6.分析原因,虽然编译的时候指定了动态链接库的路径,但是在运行的时候,系统又去/usr/lib寻找 libshareTest.so,因此我们还要指定运行时动态链接库路径
4.2编译:gcc test.c -o test -L/home/zxx/experiment/ -Wl,-rpath,/home/zxx/experiment/ -lshareTest
5.2运行:./test 成功鸟~!
相关文章推荐
- Linux下编译使用自己的动态链接库-详解
- 解析Linux静态与动态链接库的创建和使用
- Linux-(C/C++)动态链接库生成以及使用(libxxx.so)
- Linux - 创建与使用动态链接库
- linux下创建和使用自己的动态链接库
- Linux下的动态链接库与静态链接库的生成与使用
- Linux下的动态共享链接库的分析与使用
- 汇编语言使用C库函数和Linux动态链接
- Linux下的动态共享链接库的分析与使用
- linux下go的动态链接库的使用
- linux链接库(动态/静态)的使用详解
- Linux下生成动态链接库是否必须使用 -fPIC 的问题
- Linux下的动态链接库.so文件的使用
- Linux平台下python链接数据库所需环境搭建记录(使用pip)
- linux的动态链接库的创建和使用
- Linux-(C/C++)动态链接库生成以及使用(libxxx.so)
- linux 静态动态链接库的编写和使用
- linux下go的动态链接库的使用
- Linux下的动态链接库.so文件的使用
- Linux 静态链接库与动态链接库之二:动态链接库生成及使用