我使用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
搜索特定路徑。