GStreamer SDK - link error since upgrading to latest version (2012.11Brahmaputra)

Andoni Morales ylatuya at gmail.com
Fri Oct 11 02:13:34 PDT 2013


2013/10/1 Andoni Morales <ylatuya at gmail.com>

>
>
>
> 2013/9/20 philippe renon <philippe_renon at yahoo.fr>
>
>> Hi,
>>
>> I am reviving this thread as things have moved a bit since the last post.
>>
>> To resume the issue at hand : I was happily developing with Qt and
>> GStreamer SDK.
>> Then I upgraded to a more recent version of the GStreamer SDK and started
>> hitting a link issue (on Windows...).
>> With the help of the community I came to understand that the issue was
>> caused by a MinGW toolchain incompatibility concerning exceptions.
>> - the upgraded GStreamer SDK was compiled with SJLJ exceptions (prior
>> version was using DWARF)
>> - Qt was compiled with DWARF exceptions
>> - It is not possible to mix the two models in the same compilation unit.
>>
>> At the time my hopes to solve this issue were boosted when I was pointed
>> to a new release of Qt (5.0.1) that was compiled with SJLJ exceptions.
>>
>> Since then, the open source project I contribute to has switched to Qt
>> 5.1.0, so I revisited the link issue.
>> But, unfortunately, that version of Qt switched back to DWARF...
>> The trigger for the switch was performance issues with SJLJ.
>>
>> The switch was announced and motivated here :
>> http://lists.qt-project.org/pipermail/development/2013-April/010667.html
>> Additionaly, this page compares the exception models and arguments the
>> choice made by Qt : http://qt-project.org/wiki/MinGW-64-bit
>>
>> Here is the failing link command:
>>
>> g++ -shared -mthreads
>> -Wl,--out-implib,D:/Projects/OP5/build/openpilotgcs_debug/lib/openpilotgcs/libGST_libd.a
>> -o ../../../lib/openpilotgcs/GST_libd.dll
>> debug/gst_global.o debug/videowidget.o debug/moc_videowidget.o
>> -lglu32 -lopengl32 -lgdi32 -luser32
>> -LD:/Projects/OP5/build/openpilotgcs_debug/lib/openpilotgcs
>> -Ld:/gstreamer/1.0/x86/lib -lgobject-2.0 -lglib-2.0 -lgstreamer-1.0
>> -Ld:/Projects/OpenPilotTools/qt-5.1.0/5.1.0/mingw48_32/lib -lQt5Testd
>> -lQt5Guid -lQt5Cored
>>
>> debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebug6StreamD1Ev+0x13):
>> undefined reference to `__gxx_personality_v0'
>> debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebugD1Ev+0x13):
>> undefined reference to `__gxx_personality_v0'
>> debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebuglsEPKc+0x13):
>> undefined reference to `__gxx_personality_v0'
>> debug/gst_global.o:gst_global.cpp:(.eh_frame+0x13): undefined reference
>> to `__gxx_personality_v0'
>> debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN5QListI7QStringE6appendERKS0_+0x13):
>> undefined reference to `__gxx_personality_v0'
>> debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN5QListI7QStringE9node_copyEPNS1_4NodeES3_S3_+0x13):
>> more undefined references to `__gxx_personality_v0' follow
>> debug/videowidget.o: In function `ZN11VideoWidgetC2EP7QWidget':
>> d:\Projects\OP5\build\openpilotgcs_debug\src\libs\gst_lib/../../../../../ground/openpilotgcs/src/libs/gst_lib/videowidget.cpp:72:
>> undefined reference to `_imp___ZN7QWidgetC2EPS_6QFlagsIN2Qt10WindowTypeEE'
>> <snip>
>>
>
>
> Could you please paste the full  output of the link step with g++ -v to
> check which libraries it's using in the link? It seems that at some point
> it's pulling some wrong dependency (maybe because of -L ordering)
>

This ended up being the issue of the link stage. It was using libstdc++
from the GStreamer SDK prefix to link. For now, the workaround is to remove
this dll from the SDK root although it should also be possible to change
the -L ordering in the Makefiles but I haven't QT installed here to test

Cheers,
Andoni

>
> Cheers
> Andoni
>
>


-- 
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20131011/a9470796/attachment-0001.html>


More information about the gstreamer-devel mailing list