2011-07-18 21 views
1

我剛剛發現有關@rpath使用dlopen加載名爲.dylib文件,並需要一些幫助理解它們。我在OSX機器上使用Xcode 3.2.5。是否用於查找從另一個名爲.dylib稱爲被加載.dylibs/@rpath工作?

我有幾個名爲.dylib的調用其他名爲.dylib的,並且也相互調用。 @rpath似乎適用於加載的初始.dylib,但是一旦我與另一個.dylib進行dlopen調用,該dlopen使用先前找到並使用@rpath加載的第一個.dyblib文件,則dlopen將失敗,說它可以找不到原始.dylib。

@rpath是否只適用於與dlopen一起使用的文件,還是用於解析正在打開的dylib文件內部的依賴關係?

UPDATE:

我進一步的調查結果是導致我使用install_name_tools改變相互依賴性有@rpath給他們。這是做這件事的正確方法嗎?

回答

1

經過幾天的研究和試驗和錯誤,我發現我需要在所有的.dylib上使用@ rpath/dylibName.dylib做一個-install_name作爲所有我打算使用相對庫的安裝名稱尋找路徑。

相關問題