LInux中共享库的嵌套调用例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LInux中共享库的嵌套调用例子相关的知识,希望对你有一定的参考价值。
亲测成功!
参考网址:
嵌套例程:https://my.oschina.net/moooofly/blog/506466.html
linux找不到动态链接库 .so文件的解决方法https://www.cnblogs.com/xudong-bupt/p/3698294.html
Linux共享库、静态库、动态库详解:
https://www.cnblogs.com/sunsky303/p/7731911.html
新建一个test测试文件夹,并在这个文件夹内新建一些文件:
vim hello.cpp
vim hello.h
vim usehello.cpp
vim usehello.h
1.编译动态链接库
gcc -o hello.so -fpic -shared -I. hello.cpp
ls
ldd hello.so
gcc -o usehello.so -fpic -shared -I. -Wl,-rpath=/home/yzw/test usehello.cpp hello.so
ls
ldd usehello.so
切记共享库写在.cpp文件的后面,否则就会加载不上动态链接库
gcc -o main -I. -Wl,-rpath=/home/yzw/test main.cpp usehello.so
ls
ldd main
./main`
备注:
- -I 后面加头文件的路径, -I. 表示在当前的目录下搜索头文件
- -Wl,-rpath=/home/yzw/test 表示指定优先搜索的共享库地址,首先你的地址必须在/etc/ld.so.conf文件中,或者在/etc/ld.so.conf.ld目录下。
- 来自于链接一的补充说明:
ldconfig命名与运行程序市有关,与编译时一点关系都没有,因此,在编译的时候依旧需要加上优先指定库路径,如: -Wl,-rpath=/home/yzw/test
以上是关于LInux中共享库的嵌套调用例子的主要内容,如果未能解决你的问题,请参考以下文章