OSX 10.6 上的 Qt5

Posted

技术标签:

【中文标题】OSX 10.6 上的 Qt5【英文标题】:Qt5 on OSX 10.6 【发布时间】:2014-05-21 22:52:52 【问题描述】:

我在 OS X 10.6 (Snow Leopard) 上安装了 XCode 4.2 和 Qt 5.3。 当我尝试编译任何项目时,我得到“项目错误:无法解析 'macosx10.8' 的 SDK 路径”。

我可以在 *.pro 文件中将 sdk 版本更改为 macosx10.6 吗?

【问题讨论】:

抱歉询问,但您是如何在 10.6 上安装 Qt 5.3 的?我今天早些时候尝试过,发现二进制文件包含对较新 ABI 的引用......这意味着即使安装失败 我从源代码构建它。 啊,这正是我想要做的,但我似乎无法构建它。你能否发表一下你是如何进行的描述?您是否安装了 MacPorts(或 Fink,或任何可能混淆构建系统的类似工具)? 纯 10.6 安装 + MacOSXUpdCombo10.6.8 然后我使用了这个指南:qt-project.org/doc/qt-5/macosx-building.html 编译非常长(几个小时)。我建议跳过 webkit 和示例编译(参见源文件夹中的自述文件)。 好的,谢谢。我会在隐藏 MacPorts 安装之后再试一次。 【参考方案1】:

我正在开发 Maverick、Xcode 6、Qt 5.3.2 和 QtCreator 3.2.1:

    在 .bash_profile(一行)上:

    导出 SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk

    在 *.pro 上:

    QMAKE_MAC_SDK = macosx10.9

    清理 & qmake & 构建

    完成:)

【讨论】:

罗伯特感谢您的指导! :) 你的调试器工作了吗?我无法开始调试。 谢谢,但我问的是 10.6(雪豹)而不是 10.9 :) Alprog,此解决方法适用于 10.x :) - 将 10.9 替换为 10.6 - 将 SDKROOT 替换为 Xcode 中相应的 SDK 路径。 .pro文件是否接受指定Qt安装位置或目录的字段? (我已经安装了 4.8.6 作为标准,但在 /usr/local 中安装了 5.3.2) 没关系,@maythe4thbewithu 的另一个答案处理这个问题,因为有三个地方需要更新。 Qt5安装包中的.bash_profile、.pro文件和qdevice.pri文件。所以是的,看起来 Digia 和 Riverbank 都在当前版本中对 OS X 10.8 的使用进行了硬编码。有形容这样的配置的话,但没有一个是讨人喜欢的。 ;)【参考方案2】:

你可以试试

1) 使用文本编辑器打开

Qt5.3 /5.3 /clang_64 /mkspecs /qdevice.pri

2) 改变

!host_build:QMAKE_MAC_SDK = macosx10.8

!host_build:QMAKE_MAC_SDK = macosx10.9

3) 重启你的 Qt

【讨论】:

谢谢,但我问的是 10.6(雪豹)而不是 10.9 :) 怎么样!host_build:QMAKE_MAC_SDK = macosx10.6。不工作? 我希望这将使您无需在每个 .pro 中设置 QMAKE_MAC_SDK = macosx10.6。但是我没有可以尝试的 Mac OSX 10.6。 哦,现在我明白了。谢谢。 为 10.9 更新 qdevice.pri 需要将两行更改为:!host_build:QMAKE_MAC_SDK = macosx10.9 GCC_MACHINE_DUMP = x86_64-apple-darwin13.4.0【参考方案3】:

我可以在 *.pro 文件中将 sdk 版本更改为 macosx10.6 吗?

这个

QMAKE_MAC_SDK = macosx10.6

效果很好。

【讨论】:

【参考方案4】:

已经回答,但是从源代码构建时,有一种方法可以使用 ./configure 脚本为您设置 sdk,而无需事后修复它。

在包含源代码和configure 文件的终端中,运行以下命令:

./configure -no-c++11 -sdk macosx10.6 -debug-and-release -opensource -confirm-license

【讨论】:

以上是关于OSX 10.6 上的 Qt5的主要内容,如果未能解决你的问题,请参考以下文章

如何提交兼容 10.6 的 OSX 10.7 应用程序?

OSX 10.5 和 10.6 中的 MenuKey 功能?

GCC 在尝试在 OSX 10.6 上编译 64 位代码时死了

RPC 端口映射失败 Mac OSX 10.6

如何在 mac osx 10.6 中使用 fsevents 创建观察者

OSX 10.6 在 0x0000000000000000 处提供 EXC_BAD_ACCESS、KERN_INVALID_ADDRESS