当前位置: 技术问答>linux和unix
SO 一定要拷贝到系统目录下才可以运行码?
来源: 互联网 发布时间:2017-01-10
本文导语: 本帖最后由 aaadddzxc 于 2011-10-24 16:15:23 编辑 我写了个SO。导出函数 然后写了个控制台程序,使用了 so 里面的函数,我编译后,运行,他提示找不到这个so 。。。我想让so 就和 程序在一个目录下运行怎么做? ...
然后写了个控制台程序,使用了 so 里面的函数,我编译后,运行,他提示找不到这个so 。。。我想让so 就和 程序在一个目录下运行怎么做?
|
除了LD_LIBRARY_PATH
我记得还可以-Wl,rpath=/...so 进行硬链接
我忘了是不是rpath,也可能是其他的
我记得还可以-Wl,rpath=/...so 进行硬链接
我忘了是不是rpath,也可能是其他的
|
export LD_LIBRARY_PATH=${LD_LIBRARY_PTAH}:.
正解~
正解~
|
有几种方法:
1、将当前路径加入LD_LIBRARY_PATH,方法如2楼所示;
2、将你的.so放到系统的/lib中,但不推荐;
3、在编译时添加选项,如6楼。
以前写有篇文章的,楼主有空可以看看。
http://www.latelee.org/programming-under-linux/108-library-on-linux.html
1、将当前路径加入LD_LIBRARY_PATH,方法如2楼所示;
2、将你的.so放到系统的/lib中,但不推荐;
3、在编译时添加选项,如6楼。
以前写有篇文章的,楼主有空可以看看。
http://www.latelee.org/programming-under-linux/108-library-on-linux.html
|
linux不像windows,windows默认会搜索当前目录,linux不会。
所以你需要指定要到哪个目录下搜索你的so,2楼方法可用。
所以你需要指定要到哪个目录下搜索你的so,2楼方法可用。
|
export LD_LIBRARY_PATH=${LD_LIBRARY_PTAH}:.
|
需要让系统知道去哪些目录寻找这些so文件,否则只会去默认目录下寻找,试试2L的方法,把当前的目录加入寻找路径中