Как развернуть приложение Qt 5.5 C++11 на MacOS X Snow Leopard (10.6)

Мое приложение 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 в Snow Leopard. Приложения C++11 без зависимостей Qt прекрасно работают с этими библиотеками.

Я не могу отказаться от поддержки C++11 в Qt, поэтому это решение мне не подходит.


person ramzes2    schedule 25.08.2015    source источник


Ответы (1)


Насколько мне известно, это невозможно. Qt5 был разработан для поддержки Snow Leopard только до 5.3.2, и даже тогда вам приходилось вручную компилировать 5.3.2 (для 5.3.1 существует двоичный файл). У меня есть двоичный файл, который вы можете использовать, если вам интересно, но без поддержки С++ 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 не поддерживает C++11 в Qt 5.3.2, Snow Leopard с XCode 4.2 поставляется с Clang++ 3.0 и GCC 4.2. Экспериментальная поддержка GCC C++11 появилась в GCC 4.3 и версии 3.3 для Clang.

Источники: https://clang.llvm.org/cxx_status.html https://stackoverflow.com/a/10029817/1703772 https://en.cppreference.com/w/cpp/compiler_support/11

person NuclearPeon    schedule 09.12.2020