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

philippe renon philippe_renon at yahoo.fr
Fri Oct 11 02:25:39 PDT 2013








>________________________________
> De : Andoni Morales <ylatuya at gmail.com>
>À : philippe renon <philippe_renon at yahoo.fr> 
>Cc : Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org> 
>Envoyé le : Vendredi 11 octobre 2013 11h13
>Objet : Re: GStreamer SDK - link error since upgrading to latest version (2012.11Brahmaputra)
> 
>
>
>
>
>
>
>
>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


Yes, removing all *stdc*.* files from the GStreamer SDK helped workaround the link issue and the app now compiles and runs fine.
I'll report back here if I find a way to fix the issue from Qt qmake files (i.e. change -L ordering).

Thanks,
Philippe.



>Cheers,
>
>Andoni
>
>
>
>>Cheers
>>Andoni
>>
>>
>
>
>-- 
>Andoni Morales Alastruey
>
>LongoMatch:The Digital Coach
>http://www.longomatch.ylatuya.es
>
>


More information about the gstreamer-devel mailing list