如何在 MacOS X 雪豹 (10.6) 上部署 Qt 5.5 C++11 应用程序

Posted

技术标签:

【中文标题】如何在 MacOS X 雪豹 (10.6) 上部署 Qt 5.5 C++11 应用程序【英文标题】:How to deploy Qt 5.5 C++11 application on MacOS X snow leopard (10.6) 【发布时间】:2015-08-25 07:35:10 【问题描述】:

我的 Qt 5.5 应用程序在 MacOS X snow leopard (10.6) 上崩溃,并带有下一个调用堆栈:

0   libc++.1.dylib                 0x6d801002 0x6d801000 + 2
1   org.qt-project.QtCore          0x6c9440ea qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*) + 26
2   org.qt-project.QtCore          0x6ca9c577 QXmlUtils::isNCName(QStringRef const&) + 711
3   dyld                           0x8fe0ed69 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 235
4   dyld                           0x8fe0d31a ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 246
5   dyld                           0x8fe0d2be ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int) + 154
6   dyld                           0x8fe0d3cd ImageLoader::runInitializers(ImageLoader::LinkContext const&) + 61
7   dyld                           0x8fe024a9 dyld::initializeMainExecutable() + 134
8   dyld                           0x8fe0794e dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**) + 4189
9   dyld                           0x8fe018b1 dyldbootstrap::start(macho_header const*, int, char const**, long) + 779
10  dyld                           0x8fe01057 _dyld_start + 39

我使用开源版本的 libc++.dylib 和 libc++abi.dylib 来支持雪豹上的 C++11。没有 Qt 依赖项的 C++11 应用程序可以很好地与这些库配合使用。

我不能放弃 Qt 对 C++11 的支持,所以 this solution 不适合我。

【问题讨论】:

【参考方案1】:

据我所知,这是不可能的。 Qt5 在 5.3.2 之前只是为了支持 Snow Leopard 而开发的,即便如此,您也必须手动编译 5.3.2(5.3.1 存在二进制文件)。我有一个二进制文件,如果您有兴趣可以使用,但不支持 c++11。 https://github.com/NucleaPeon/qt5-sle/releases/tag/v5.3.2

这绝对是 Qt5 的限制,从我在他们的跟踪器上浏览雪豹问题的一些票证来看,他们当时似乎并不热衷于在 10.6.8 的新版本中修复它们可用的。您可能尝试在最低版本为 10.6 的 OS X 10.7/8/9 上编译您的软件,看看它是否能以这种方式运行。

更新我需要更改回答的原因。虽然 Qt5 在 Qt 5.3.2 中确实不支持 C++11,但带有 XCode 4.2 的 Snow Leopard 带有 Clang++ 3.0 和 GCC 4.2。在 GCC 4.3 和 Clang 版本 3.3 期间提供了实验性 GCC C++11 支持。

来源: https://clang.llvm.org/cxx_status.html https://***.com/a/10029817/1703772 https://en.cppreference.com/w/cpp/compiler_support/11

【讨论】:

以上是关于如何在 MacOS X 雪豹 (10.6) 上部署 Qt 5.5 C++11 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

将 Psyco 移植到 64 位可能存在哪些缺陷?

我应该在 macOS X 10.6 上设置啥 JAVA_HOME 环境变量?

NSPopover 和雪豹

Mac10.6操作系统下怎样将xcoder开发的程序打包为ipa安装到iphone OS3.13上?(免证书真机联调)(还可加分)

Xcode 5 为 OS X 10.6 开发

有没有人在 MacOS 10.6 上使用过 OpenCV 与 Python 2.7 一起工作?