我使用premake(gmake)构建了一个二进制文件,该文件可动态链接到另一个文件。当我尝试运行二进制文件时,它抱怨说它无法找到动态库。如何在不设置RPATH的情况下设置RUNPATH
ldd
的二进制和过程的动态库是=> Not Found!
我当然export LD_LIBRARY_PATH=<path of the dynamic library
>但我不希望出现这种情况。
我想的是二进制工作开箱即用,在不同的机器(假设动态库的位置,当然不会改变)
1-人们如何做到这一点?他们是否始终通过链接标志设置RPATH
?
从我所搜集的,RUNPATH
可以被LD_LIBRARY_PATH
覆盖,但这不是RPATH
的情况。
还有的-rpath
和--enable-new-dtags
选项,将指导gcc
(或连接件更精确),同时设置RUNPATH
和RPATH
为相同的值,但是这不是我想要的真的,我甚至不能看那点。
2-这是什么意思?
3-我错过了什么?我怎样才能设置RUN_PATH
只,所以通常依赖关系被自动找到(在RUN_PATH
),除非指示首先使用LD_LIBRARY_PATH
搜索特定路径。