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

Ben Lau xbenlau at gmail.com
Mon Sep 28 11:39:15 CEST 2015


Reported:

[QTBUG-48480] Qt5QuickTest should not be linked in iOS target for non-unit
test program - Qt Bug Tracker <https://bugreports.qt.io/browse/QTBUG-48480>

On 26 September 2015 at 11:54, Nuno Santos <nunosantos at imaginando.pt> wrote:

> That's awesome! :)
>
> I think this should be considered a big and must be reported.
>
> It made me waste a good hand of hours.
>
> It seems I was not the only one! ;)
>
> --
> Nuno Santos
>
> No dia 26/09/2015, às 04:14, Ben Lau <xbenlau at gmail.com> escreveu:
>
> HI Nuno,
>
> Thanks for you reply~
>
> I just found out what is wrong with it. In my source tree, it has a
> directory with 3rd party QML library. The library contains test code using
> QtTest which is not included in my application, but qmlimportscanner still
> treat it as a part of my program. So it add Qt5QuickTest and Qt5Test
> automatically. Remove those files can solve the problem.
>
> I wonder should it be considered as a bug? Since it will add library not
> even used in a build.
>
> On 26 September 2015 at 03:58, Nuno Santos <nunosantos at imaginando.pt>
> wrote:
>
>> In my case the problem was that I was linking to a framework called parse
>> and inside the project dir there was a parse dir. For some reason that
>> directory with the name of the framework I was linking was making the
>> linker line to become "-framework “ invalidating all the frameworks in the
>> line from that point onward. This didn’t happened on 5.4.1. I think
>> something changed on qmake. I can’t tell you exactly what it was.
>>
>> Try to link frameworks one by one and see which was is failing. You can
>> also share your linker command execution line. Maybe I can spot something.
>>
>> Regards,
>>
>> Nuno
>>
>> On 25 Sep 2015, at 20:24, Ben Lau <xbenlau at gmail.com> wrote:
>>
>>
>> I got similar problem after upgraded to Qt 5.5, but all frameworks are
>> linked successfully. It only complains about the linkage with XCTestCase.
>>
>> Ofcoz I didn't include any test lib in my application. And tried to clear
>> .qmake.config and .qmake.cache , but it do not help.
>>
>> I have also tried to run `qmake -d` to generate log to trace for it.
>> However, I can't find anything to tell why Qt5QuickTest / Qt5Test are
>> included.
>>
>> Any tips to trace such kind of problem?
>>
>> Undefined symbols for architecture arm64:
>>
>>   "_OBJC_METACLASS_$_XCTestCase", referenced from:
>>
>>       _OBJC_METACLASS_$_QtTestLibWrapper in libQt5Test.a(qxctestlogger.o)
>>
>>       _OBJC_METACLASS_$_QtTestLibTest in libQt5Test.a(qxctestlogger.o)
>>
>>   "_OBJC_CLASS_$_XCTestDriver", referenced from:
>>
>>       objc-class-ref in libQt5Test.a(qxctestlogger.o)
>>
>>   "_OBJC_CLASS_$_XCTestCase", referenced from:
>>
>>       _OBJC_CLASS_$_QtTestLibWrapper in libQt5Test.a(qxctestlogger.o)
>>
>>       _OBJC_CLASS_$_QtTestLibTest in libQt5Test.a(qxctestlogger.o)
>>
>>   "_OBJC_CLASS_$_XCTestSuite", referenced from:
>>
>>       objc-class-ref in libQt5Test.a(qxctestlogger.o)
>>
>>       _OBJC_CLASS_$_QtTestLibTests in libQt5Test.a(qxctestlogger.o)
>>
>>   "_OBJC_METACLASS_$_XCTestSuite", referenced from:
>>
>>       _OBJC_METACLASS_$_QtTestLibTests in libQt5Test.a(qxctestlogger.o)
>>
>>   "_OBJC_CLASS_$_XCTestProbe", referenced from:
>>
>> On 10 July 2015 at 14: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
>>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150928/2d61cea2/attachment.html>


More information about the Interest mailing list