我正在使用 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 作为唯一参数传递。任何帮助表示赞赏。