0

我正在使用 Xcode/Qt 4.8.4 在 Mac OS X 10.8 上开发 C++ 应用程序。我希望它可以在 Mac OS X 10.6 及更高版本上运行。为了做到这一点,我将 Xcode 部署目标设置为 10.6,我也使用了 macdeployqt。它在 Mac OS X 10.8 上运行良好,但在 10.6 上存在很多问题。

由于缺少位于 10.6 和 10.8 不同位置的框架,应用程序崩溃:

Dyld 错误消息:库未加载:/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText 引用自:/Volumes/deploy/MyApp.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions /4/QtGui

未加载库:/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO 引用自:/Applications/MyApp.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions/4/QtGui

...类似的 QtWebKit、QtNetwork 问题等...

还有一些棘手的问题是一些系统库中缺少符号,例如 libobjc.A.dylib、libSystem.B.dylib、libc++abi.dylib、libc++.1.dylib 等:

Dyld 错误消息:找不到符号:__dispatch_queue_attr_concurrent 引用自:/tmp/MyApp.app/Contents/MacOS/../Frameworks/libobjc.A.dylib 预期在:/usr/lib/libSystem.B.dylib 在 /tmp/ MyApp.app/Contents/MacOS/../Frameworks/libobjc.A.dylib

有人可以解释如何解决这个问题吗?使用 Qt 4.8.4 时是否可以针对 Mac OS X 10.6?也许,Qt 4.8.4 与 10.6 不完全兼容?我试图在 .pro 文件中设置 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6,我使用 macdeployqt 只是将 MyApp.app 作为唯一参数传递。任何帮助表示赞赏。

4

1 回答 1

0

以我的经验,最好只在分区上安装 10.6 并在那里构建。我一直在针对 Qt 4.8.4 的 Mac OS 10.6 上构建并使用 macdeployqt,我的应用程序可以在 10.5 到 10.8 上顺利运行,没有任何问题

于 2013-03-12T08:18:43.757 回答