Qt build from source failing on OS X 10.10 for iOS
-
Hi,
I'm having trouble building Qt5.5 from source on OS X 10.10 for iOS. Downloading the prebuilt Mac package from http://www.qt.io/download-open-source/#section-2 works fine, at least with the included QtCreator I can write/deploy/run iOS apps just fine, even debugging seems to be working, except for stepping into Qt functions and below - that does not have/find the source code, as expected probably, so I'm stuck with assembly there. However, I really need to be able to debug inside Qt source too, so I thought I'd build a debug version from source, which I also got from http://www.qt.io/download-open-source/#section-2 .
After failing a couple of times (I did not think I was going to be posting this, so I haven't kept the exact error messages, but there were various failures during configure/make, depending on what exactly I did) and googling around, I realised this was probably because I just got the Mac, installed the latest Xcode 7, and with it SDK 10.11, which is probably new enough to be untested and probably not expected to work. So I downgraded to Xcode 6.4 with which come:
$ xcodebuild -showsdks OS X SDKs: OS X 10.9 -sdk macosx10.9 OS X 10.10 -sdk macosx10.10 iOS SDKs: iOS 8.4 -sdk iphoneos8.4
Then I did:
$ ./../qt-5.5.0/configure -prefix ~/Tests/qt-src/qt-5.5.0-iphoneos8.4-xcode6.4-macosx10.10-macx-ios-clang-debug-bin -debug -platform macx-clang -xplatform macx-ios-clang -nomake tests -nomake examples -opensource -confirm-license -no-framework -sdk iphoneos8.4
... which worked.
After that:
$ make
... which worked, although I did see many warnings of this pattern:
/Users/gints/Tests/qt-src/qt-5.5.0/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:72:5: warning: unknown warning group '-Winconsistent-missing-override', ignored [-Wunknown-pragmas] Q_OBJECT /Users/gints/Tests/qt-src/qt-5.5.0/qtbase/include/QtCore/../../src/corelib/kernel/qobjectdefs.h:156:5: note: expanded from macro 'Q_OBJECT' Q_OBJECT_NO_OVERRIDE_WARNING \ /Users/gints/Tests/qt-src/qt-5.5.0/qtbase/include/QtCore/../../src/corelib/kernel/qobjectdefs.h:146:45: note: expanded from macro 'Q_OBJECT_NO_OVERRIDE_WARNING' # define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_CLANG("-Winconsistent-missing-override") /Users/gints/Tests/qt-src/qt-5.5.0/qtbase/include/QtCore/../../src/corelib/global/qcompilerdetection.h:1125:49: note: expanded from macro 'QT_WARNING_DISABLE_CLANG' # define QT_WARNING_DISABLE_CLANG(text) QT_DO_PRAGMA(clang diagnostic ignored text) /Users/gints/Tests/qt-src/qt-5.5.0/qtbase/include/QtCore/../../src/corelib/global/qcompilerdetection.h:1096:49: note: expanded from macro 'QT_DO_PRAGMA' # define QT_DO_PRAGMA(text) _Pragma(#text) <scratch space>:23:27: note: expanded from here clang diagnostic ignored "-Winconsistent-missing-override"
And finally, I did:
$ make install
... which, after working for a while, failed with:
Undefined symbols for architecture armv7: "qt_static_plugin_QDDSPlugin()", referenced from: StaticQDDSPluginPluginInstance::StaticQDDSPluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QJp2Plugin()", referenced from: StaticQJp2PluginPluginInstance::StaticQJp2PluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QMngPlugin()", referenced from: StaticQMngPluginPluginInstance::StaticQMngPluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QTgaPlugin()", referenced from: StaticQTgaPluginPluginInstance::StaticQTgaPluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QICNSPlugin()", referenced from: StaticQICNSPluginPluginInstance::StaticQICNSPluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QTiffPlugin()", referenced from: StaticQTiffPluginPluginInstance::StaticQTiffPluginPluginInstance() in qml_plugin_import.o "qt_static_plugin_QWbmpPlugin()", referenced from: StaticQWbmpPluginPluginInstance::StaticQWbmpPluginPluginInstance() in qml_plugin_import.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) ** INSTALL FAILED ** The following build commands failed: Ld .obj/qml.build/Debug-iphoneos/qml.build/Objects-normal/armv7/qml normal armv7 (1 failure) make[4]: *** [iphoneos-debug-install] Error 65 make[3]: *** [iphoneos-install] Error 2 make[2]: *** [sub-qml-install_subtargets] Error 2 make[1]: *** [sub-tools-install_subtargets] Error 2 make: *** [module-qtdeclarative-install_subtargets] Error 2
Does anybody have any ideas on what's going wrong or suggestions on what to try next? Maybe an Xcode / SDK combo that has worked for you before, that I should try? Different version of the source?
Thanks,
Gints -
Hi and welcome to devnet,
The warning flood has been fixed for 5.5.1 you should rather try that version
-
Thanks. I haven't tried 5.5.1 yet, but my build ended up succeeding after I rebooted my Mac (maybe something needed to be reloaded after all the Xcode / SDK changing I did) and removed the -no-framework config option (it was probably not intended for iOS, I think I only included it after seeing some message for the OS X build, and it forgot about it for iOS). I still don't know what the original problem was, but maybe this will be useful for someone.