构建/安装成功,但在运行时:找不到dyld图像 - 为什么?

时间:2013-04-12 20:13:27

标签: osx-mountain-lion icu dyld

我的应用程序中有this problem ICU,试图在我的Mountain Lion MacBook Pro上运行Qt Creator。

现在我发现我在运行时遇到了类似的问题,我在同一台MacBook Pro上构建了dmg。构建成功完成,运行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" 

我不确定在哪里寻找跟踪它。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

显然,我的MacBook上的ICU安装有一些不同之处。通过向我们的脚本添加更多install_name_tool -change行来解决问题,以更改它在寻找相关ICU文件的依赖关系的位置。

格式为:

install_name_tool -change old new file

如果“旧”路径不匹配,则忽略该命令。因此,简单地添加新线路涵盖了各种可能的ICU安装基础。