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


  • Lifetime Qt Champion

    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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.