2013-04-12 24 views
1

我在我的應用程序中加入了ICU this problem,試圖在我的Mountain Lion MacBook Pro上運行Qt Creator。構建/安裝成功,但在運行時:未找到dyld映像 - 爲什麼?

現在我發現我在運行時遇到了類似的問題,因爲我在同一臺MacBook Pro上構建了一個dmg。構建成功完成,在運行傷害和出現安裝成功,但是當我嘗試運行我得到:

Dyld Error Message: 
    Library not loaded: @executable_path/../Frameworks/libicuuc.46.dylib 
    Referenced from: /Applications/MapCreator.app/Contents/SharedLibraries/libicui18n.46.1.dylib 
    Reason: image not found 

我抓住了我們的應用程序的早期標記的版本(編譯腳本)從源控制和我得到的在MacBook上構建相同的問題。

下面列出了我在運行構建腳本時看到的唯一錯誤。我相信這些錯誤一直存在於我們建立在所有的機器,從來就不是一個問題,但我在這裏列出它們,以防萬一事實證明是有幫助的:

ERROR: "strip: can't map file: /Users/david/dev/svn/map_creator1.0.2/build/mac/pkg-root/Applications/MapCreator.app/Contents (Invalid argument) 
" 
ERROR: "" 
ERROR: "install_name_tool: can't map file: /Users/david/dev/svn/map_creator1.0.2/build/mac/pkg-root/Applications/MapCreator.app/Contents/Frameworks//.. (Invalid argument) 
" 
ERROR: "" 
ERROR: "otool: can't map file: /Users/david/dev/svn/map_creator1.0.2/build/mac/pkg-root/Applications/MapCreator.app/Contents/Frameworks//.. (Invalid argument) 
" 
ERROR: no file at "/usr/lib/libicui18n.46.dylib" 
ERROR: no file at "/usr/lib/libicuuc.46.dylib" 
ERROR: no file at "/usr/lib/libicudata.46.dylib" 

我不知道在哪裏看看跟蹤這一點。任何人都可以將我指向正確的方向嗎?

+0

MapCreator.app中是否存在'libicuuc.46.dylib'?如果是這樣,在什麼路徑? – bdash

+0

是的,它在Contents/SharedLibraries中,與其他ICU dylib的。 SharedLibraries是Frameworks的兄弟。順便說一句,這是它在早期版本的應用程序中的位置。據我所知,它從來沒有出現在框架中。 –

回答

1

顯然,在我的MacBook上ICU的安裝有些不同。通過在我們的腳本中添加更多install_name_tool -change行來解決問題,以改變它尋找相關ICU文件的依賴關係。

格式爲:

install_name_tool -change old new file 

如果「舊」路徑不匹配,它只是忽略該命令。因此,簡單地添加新的線路涵蓋了各種可能的ICU安裝的基礎。

相關問題