我的Qt 5.5应用程序在下一个调用堆栈的MacOS X雪豹(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支持,因此该解决方案不适合我。
据我所知,这是不可能的。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。您可以尝试在OS X 10.7 / 8/9(最低版本为10.6)上编译软件,然后查看它是否以此方式运行。
更新我需要更改答案的原因。虽然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://stackoverflow.com/a/10029817/1703772 https://en.cppreference.com/w/cpp/compiler_support/11
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句