2014-11-14 125 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強制常用符號定義

相關問題