我使用premake(gmake)构建了一个二进制文件,它动态链接到另一个。当我试图运行二进制文件时,它抱怨它无法找到动态库。
关于二进制文件的 ldd
,当然动态库是=> Not Found!
当然我可以export LD_LIBRARY_PATH=<path of the dynamic library
&gt;但我不想要那个。
我希望二进制文件在不同的机器上开箱即用(假设动态库位置当然没有改变)
1-人们如何做到这一点?他们是否一直通过链接器标志设置RPATH
?
根据我收集的内容,RUNPATH
可以覆盖LD_LIBRARY_PATH
,但RPATH
的情况并非如此。
-rpath
和--enable-new-dtags
选项将指示gcc
(或链接器更精确)设置RUNPATH
和{{1相同的价值,但这不是我想要的,我甚至看不到它的重点。
2-那是什么意思?
3-我错过了什么?我该如何设置RPATH
,这样一般情况下会自动找到依赖项(RUN_PATH
),除非指示首先使用RUN_PATH
搜索特定路径。
答案 0 :(得分:0)
用法:c:/ strawberry / c / bin /../ lib / gcc / x86_64-w64-mingw32 / 4.7.3 /../../../../ x86_64-w64-mingw32 / bin /ld.exe [options] file ...
选项: -d,-dc,-dp强制定义公共符号