我有一個C++共享庫,它作爲其正常行爲的一部分fork()/ execs()另一個包含一些不穩定遺留代碼的可執行文件。除了這個庫之外,這個可執行文件沒有用,所以我想避免將它放在PATH目錄中。我也希望能夠在多個位置安裝多個副本,因此硬編碼路徑是不可取的。有沒有什麼等價於一個RPATH可以讓exec()找到這個可執行文件?或者,是否可以從庫本身查詢共享庫的rpath?可執行文件的RPATH等效
編輯:這篇文章暗示後者是可能的。如果有人知道所問問題的答案,我會保持開放。 Is there a way to inspect the current rpath on Linux?
Hobbes,你在使用autotools嗎? – 2011-03-31 19:54:58
larsmans:沒有autotools。 CMake的。 – tgoodhart 2011-03-31 19:55:52
好的。無關緊要。 Autotools支持將後端二進制文件放在一個名爲'$ prefix/libexec'的目錄中,這是這個東西的傳統地方。在FHS下它是'/ usr/{local /} lib/PACKAGE'。這不直接回答你的問題,但我知道,至少和Ubuntu建議'RPATH'。 – 2011-03-31 19:59:36