[Interest] Qt 5.5 for ios: frameworks support seems to be broken

Nuno Santos nunosantos at imaginando.pt
Fri Jul 10 09:34:20 CEST 2015


Two more small experiments.

- Exchanging Parse to Parse1 leads to a “Couldn’t find framework”, but it doesn’t convert into -> -framework “”
- A new Qt project doesn’t have the same problem...

I have already been looking for typos on the qmake but couldn’t find any.

This is the qmake file without the headers, sources and windows and macx cases:

include(deployment.pri)
include(../shared/shared.pri)

QT += qml quick purchasing
QT -= gui widgets

android: QT+=androidextras

DEFINES+=VERSION=\\\"1.1.0\\\"

TEMPLATE = app
TARGET = "LK"

CONFIG(release, debug|release): DEFINES += QT_NO_DEBUG_OUTPUT

MOC_DIR = .build/moc
UI_DIR = .build/ui
OBJECTS_DIR = .build/obj
DESTDIR = ./bin
RESOURCES += qml.qrc

ios {
    QMAKE_INFO_PLIST = ios/Info.plist

    HEADERS += LKAppDelegate.h \
               LKAppDelegateInterface.h \
               PGMidi/PGMidi.h \
               PGMidi/PGMidiAllSources.h \
               PGMidi/PGMidiFind.h \
               PGMidi/PGArc.h \
               PGMidi/IOSVersionDetection.h

    OBJECTIVE_SOURCES += LKAppDelegate.mm \
                         LKCoreMidiManager.mm \
                         LKBridgeBrowser.mm \
                         PGMidi/PGMidi.mm \
                         PGMidi/PGMidiAllSources.mm \
                         PGMidi/PGMidiFind.mm

    INCLUDEPATH += frameworks/Parse.framework/Headers
    INCLUDEPATH += frameworks/ParseFacebookUtils.framework/Headers
    INCLUDEPATH += frameworks/Bolts.framework/Headers

    INCLUDEPATH += $$PWD/ios/gctsdk

    LIBS += $$PWD/ios/gctsdk/libGoogleConversionTracking.a
    LIBS += -framework Parse -framework Bolts -framework CoreMidi -framework AudioToolbox -framework MobileCoreServices -framework CoreLocation -framework CFNetwork -framework AdSupport
}

OTHER_FILES += Info.plist \
               android/AndroidManifest.xml \
               android/src/com/imaginando/lk/LKActivity.java \
               android/src/com/imaginando/lk/LKBridgeBrowser.java \
               android/src/com/imaginando/lk/LKMidiManager.java \
               android/src/com/imaginando/lk/LKApplication.java

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android

> On 10/07/2015, at 07:55, Nuno Santos <nunosantos at imaginando.pt> wrote:
> 
> Curiously, it seems that qmake whipes the reference to Parse framework. Whenever -framework Parse is referenced, it removes Parse.
> 
> Before -framework Bolts there was -framework Parse, if I move the -framework Parse after the Bolts, then the next one will have problems.
> 
> If I remove the -frameworks Parse I will obviously have undefined references to some Parse functions and i’m having a couple others that I still don’t know where they come from:
> 
> Undefined symbols for architecture armv7:
>  "_OBJC_CLASS_$_XCTestCase", referenced from:
>      _OBJC_CLASS_$_QtTestLibWrapper in libQt5Test_debug.a(qxctestlogger.o)
>      _OBJC_CLASS_$_QtTestLibTest in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_CLASS_$_XCTestSuite", referenced from:
>      objc-class-ref in libQt5Test_debug.a(qxctestlogger.o)
>      _OBJC_CLASS_$_QtTestLibTests in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_CLASS_$_XCTestDriver", referenced from:
>      objc-class-ref in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_METACLASS_$_XCTestSuite", referenced from:
>      _OBJC_METACLASS_$_QtTestLibTests in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_CLASS_$_XCTestProbe", referenced from:
>      objc-class-ref in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_CLASS_$_Parse", referenced from:
>      objc-class-ref in LKAppDelegate.o
>  "_OBJC_CLASS_$_PFPush", referenced from:
>      objc-class-ref in LKAppDelegate.o
>  "_OBJC_METACLASS_$_XCTestCase", referenced from:
>      _OBJC_METACLASS_$_QtTestLibWrapper in libQt5Test_debug.a(qxctestlogger.o)
>      _OBJC_METACLASS_$_QtTestLibTest in libQt5Test_debug.a(qxctestlogger.o)
>  "_OBJC_CLASS_$_PFInstallation", referenced from:
>      objc-class-ref in LKAppDelegate.o
> 
> ** BUILD FAILED **
> 
> Any ideas?
> 
> Thanks,
> 
> Nuno
> 
>> On 10/07/2015, at 01:05, Thiago Macieira <thiago.macieira at intel.com> wrote:
>> 
>> On Friday 10 July 2015 00:43:48 Nuno Santos wrote:
>>> -u _qt_registerPlatformPlugin -framework -framework Bolts
>> 
>> There's one extra -framework there, so this is telling the linker to link to 
>> framework "-framework" and then use a local file called "Bolts" as input 
>> object.
>> 
>> If you run qmake with the -d -d options, you'll see how it processes. Search 
>> for what came before that double -framework and you'll find out what was the 
>> framework that got dropped.
>> 
>> If you look for the first occurrence of "-framework -framework", you'll find the 
>> place where the framework got dropped or failed to be added.
>> -- 
>> Thiago Macieira - thiago.macieira (AT) intel.com
>> Software Architect - Intel Open Source Technology Center
>> 
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest




More information about the Interest mailing list