1

我在我的应用程序中遇到了 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" 

我不确定在哪里可以找到它。谁能指出我正确的方向?

4

1 回答 1

1

显然,我的 MacBook 上的 ICU 安装有些不同。该问题通过install_name_tool -change在我们的脚本中添加更多行来解决,以更改它在哪里寻找相关 ICU 文件的依赖项。

格式为:

install_name_tool -change old new file

如果“旧”路径不匹配,它会忽略该命令。因此,只需添加新行就涵盖了各种可能的 ICU 安装的基础。

于 2013-04-15T16:13:06.067 回答