当前位置: 技术问答>linux和unix
请教共享库运行时加载的问题
来源: 互联网 发布时间:2017-02-27
本文导语: 写了一个共享库,其中用到了其他的共享库(隐式链接),最后运行的时候,这个共享库在搜索其他共享库的时候,执着的去搜索编译时候指定的共享库的链接路径;如果建立一个和编译时一样的路径,能够正常的搜...
写了一个共享库,其中用到了其他的共享库(隐式链接),最后运行的时候,这个共享库在搜索其他共享库的时候,执着的去搜索编译时候指定的共享库的链接路径;如果建立一个和编译时一样的路径,能够正常的搜索到其他依赖共享库。可是在实际运行的时候,依赖共享库和编译时链接的路径不一样。无论我用LD_LIBRARY_PATH环境变量还是用ldconfig,或是把依赖共享库复制到/usr/lib目录下,都提示找不到, 隐式链接的共享库只能在链接的路径去搜索吗?
|
LIBPATH 这个环境变量是否有用?
|
那你是如何编译的?命令行是怎样的
|
export LD_LIBRARY_PATH=xxx 指定动态库目录,否则就应该将所有动态库放到/usr/lib,/usr/local/lib下,这样才会被查找到。
|
是的,首先编译时候要指定动态库的目录,其次LD_LIBRARY_PATH要和那个指定的目录一致。具体原因我也不明白为什么会和动态库目录位置相关。