Qt 5.4 - Mac OS X 10.6 支持

Posted

技术标签:

【中文标题】Qt 5.4 - Mac OS X 10.6 支持【英文标题】:Qt 5.4 - Mac OS X 10.6 Support 【发布时间】:2014-12-30 20:09:13 【问题描述】:

我在 Mac OS X 10.9 上使用 Qt 5.3.2 编译了我的应用程序,它在 Mac OS X 10.6 上运行没有任何问题。但是由于 Qt 5.3.2 中的一个错误(未修复)导致应用程序在最大化时崩溃,如果焦点在树视图上,我不得不切换到 Qt 5.4。

在 Mac OS X 10.9 上使用 Qt 5.4 编译我的应用程序后,它不再在 Mac OS X 10.6 上运行。它因错误而崩溃:

dyld: library not loaded: /usr/lib/libc++.1.dylib Qt

【问题讨论】:

【参考方案1】:

经过一番搜索,我发现了

Qt 网站上提供的 Qt 5.4 二进制文件不支持在 Mac OS X 10.6 上运行 Qt 应用程序。同样需要自定义构建。

根据一个来源:

要使 clang++ 从 llvm-gcc-4.2.1 生成与 g++ 兼容的二进制文件,请使用以下编译器和链接器标志:-stdlib=libstdc++ -mmacosx-version-min=10.6

这些将确保我们链接到 10.6 CRT,并且我们不链接到 libc++(clang++ 的默认 C++ 库)。

对于自定义构建:

./configure -prefix $PWD/qtbase -opensource -no-c++11 -debug-and-release -nomake examples -nomake demos 

【讨论】:

我在 10.6 上构建 5.3.2 方面付出了巨大的努力,作为这项工作的一部分,我通过首先构建 LLVM 3.5,然后使用它来构建它以 C++11 模式构建它libc++libc++abi,然后将这些库放在 /usr/lib 中。然后,我能够对 Qt 的源代码进行温和编辑,以使用 Clang 针对libc++ 构建 5.3.2。我希望这个过程的第一部分应该为您提供libc++ dylib,您需要进一步发展,即使使用 Qt 5.4。 @IwillnotexistIdonotexist 我不是在 10.6 上构建的,我只是将 10.6 作为最低支持版本 但是您不能构建那些 10.6 libc++'es 并在 10.6 上将它们与应用程序一起发布吗?您可以使用install_name_tool 使二进制文件和Qt 库指向@loader_path/libc++.1.dylib,而不是/usr/lib/libc++.1.dylib。但我想,如果你已经成功构建了适用于 10.6 的 5.4 二进制文件,那就足够了。【参考方案2】:

Qt 5.4 不再支持 10.6

如果你甚至使用 -no-c++11 手动编译它,你的应用程序生成的可执行文件将在 10.6 上崩溃

5.3.2 是最后一个使用 -no-c++11 支持 10.6

【讨论】:

以上是关于Qt 5.4 - Mac OS X 10.6 支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在 10.6 上为 OS X 10.5 构建 Qt

MAC OS X 10.6 中的通知中心备用

在 Mac Os X 上使用 CGEvent 和 Qt

如何在 Mac OS X 10.6 中发出硬件哔声

在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量

Qt中的OS X透明面板?