1
我有一個外部lib'libspecial.dylib',它具有以下依賴項。無法更改osx上的@rpath
otool -L libspecial.dylib [11:20:59]
libspecial.dylib:
@rpath/libspecial.dylib (compatibility version 1.0.0, current version 1.0.1)
@rpath/libhelper.dylib (compatibility version 1.0.0, current version 1.0.1)
因爲@rpath導致問題我有一個腳本將所有@rpath替換爲真實路徑。
install_name_tool -change @rpath/libspecial.dylib /tmp/libspecial.dylib libspecial.dylib
install_name_tool -change @rpath/libhelper.dylib /tmp/libhelper.dylib libspecial.dylib
但這只是取代了第二依賴(其實有更多的依賴關係,所有被替換,但沒有指向的lib本身第一個):
otool -L libspecial.dylib
libspecial.dylib:
@rpath/libspecial.dylib (compatibility version 1.0.0, current version 1.0.1)
/tmp/libhelper.dylib (compatibility version 1.0.0, current version 1.0.1)
我不知道爲什麼我無法改變第一個依賴關係。有任何想法嗎?
運行在OSX 10.11.1
第一個引用是庫本身的引用,所以我不希望你可以改變這一點。但是,我不希望它在一開始就有@ rpath /。我見過的所有dylib都是以自己的名字開始的。你可以將它設置爲libspecial.dylib? – TheDarkKnight
你是對的,在這個庫的最後一個版本中,對自身的引用沒有@rpath,並且一切正常。但遺憾的是,我無法改變它,而不是/tmp/libspecial.dylib而不是libspecial.dylib。 – Marcel
當二進制文件與它鏈接時,不會影響默認加載路徑嗎?我不認爲它在運行時很重要。 – trojanfoe