2011-06-08 109 views
2

我正準備在OSX上部署應用程序。 唯一的問題是重新部署共享庫。install_name_tool什麼都不做

我把它們全部放在.app文件夾本身的Frameworks文件夾中。

我嘗試每個圖書館是一樣的東西:

install_name_tool \ 
    -id @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \ 
    MyProgram.app/Contents/MacOS/MyProgram 


install_name_tool \ 
    -change QtSql @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \ 
    MyProgram.app/Contents/MacOS/MyProgram 

當我在我的可執行文件運行otool -L再次什麼都沒有改變。這仍是輸出:

kqoauth.framework/Versions/0/kqoauth (compatibility version 0.95.0, current version 0.95.0) 
QtDeclarative.framework/Versions/4/QtDeclarative (compatibility version 4.7.0, current version 4.7.3) 
QtScript.framework/Versions/4/QtScript (compatibility version 4.7.0, current version 4.7.3) 
QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.3) 
QtSvg.framework/Versions/4/QtSvg (compatibility version 4.7.0, current version 4.7.3) 
QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.3) 
QtSql.framework/Versions/4/QtSql (compatibility version 4.7.0, current version 4.7.3) 
QtXmlPatterns.framework/Versions/4/QtXmlPatterns (compatibility version 4.7.0, current version 4.7.3) 
QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.7.0, current version 4.7.3) 
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) 
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 832.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10) 

什麼我做錯了嗎?

回答

3

你嘗試

install_name_tool \ 
    -change QtSql.framework/Versions/4/QtSql \ 
    @executable_path/../Frameworks/QtSql.framework/Versions/4/QtSql \ 
    MyProgram.app/Contents/MacOS/MyProgram 

?您可能需要使用完整的當前安裝名稱,如otool -L所示。

+0

這是正確的,謝謝。 修復所有庫的依賴關係還有很多工作要做。 – Hedge 2011-06-09 09:33:13