LD_LIBRARY_PATH,Linux中的共享库路径
我写了一个共享对象,然后说说了libsd.so
,把libsd.so
它的头文件放进sd.h
了~/lib
。
这是另一个使用libsd.so
,比如说的程序test.c
,然后像这样编译它:
$ gcc -o test test.c -I~/lib -L~/lib -lsd
然后我test
像这样运行:
$ ./test./test_sd: error while loading shared libraries: libsd.so: cannot open shared object file: No such file or directory
所以我设置了export LD_LIBRARY_PATH=.
,然后就可以了。但是,如果我unset
LD_LIBRARY_PATH,并把LD_LIBRARY_PATH=~/lib
我~/.bashrc
的话source
~/.bashrc,再次它没有工作./test
,为什么?
export LD_LIBRARY_PATH=~/lib
与放入LD_LIBRARY_PATH=~/lib
有~/.bashrc
什么区别?
回答:
如果没有导出,则声明的LD_LIBRARY_PATH仅在脚本(.bashrc)中有效。通过导出,它应该可以工作,但是像这样设置LD_LIBRARY_PATH通常不是一个好主意。
如果您不想在系统路径(例如/ usr / lib)中安装您的库,则可能应该使用一个脚本,该脚本在本地设置LD_LIBARAY_PATH并启动您的应用程序。
以上是 LD_LIBRARY_PATH,Linux中的共享库路径 的全部内容, 来源链接: utcz.com/qa/408448.html