2014-11-14 77 views
1

我使用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(或连接件更精确),同时设置RUNPATHRPATH为相同的值,但是这不是我想要的真的,我甚至不能看那点。

2-这是什么意思?

3-我错过了什么?我怎样才能设置RUN_PATH只,所以通常依赖关系被自动找到(在RUN_PATH),除非指示首先使用LD_LIBRARY_PATH搜索特定路径。

回答

0

在我的笔记本电脑上,路径可能与您的路径不同,但“-d”选项应该这样做。用法:c:/rackberry/c/bin/../ lib/gcc/x86_64-w64-mingw32/4.7.3 /../../../../ x86_64-w64-mingw32/bin/ld.exe [选项]文件...

选项: -d,-dc,-dp强制常用符号定义

相关问题