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 支持的主要内容,如果未能解决你的问题,请参考以下文章