<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2013/9/20 philippe renon <span dir="ltr"><<a href="mailto:philippe_renon@yahoo.fr" target="_blank">philippe_renon@yahoo.fr</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div><span>Hi,<br><br>I am reviving this thread as things have moved a bit since the last post.<br><br>To resume the issue at hand : I was happily developing with Qt and GStreamer SDK.<br>
Then I upgraded to a more recent version of the GStreamer SDK and started hitting a link issue (on Windows...).<br>With the help of the community I came to understand that the issue was caused by a MinGW toolchain incompatibility concerning exceptions.<br>
- the upgraded GStreamer SDK was compiled with SJLJ exceptions (prior version was using DWARF)<br>- Qt was compiled with DWARF exceptions<br>- It is not possible to mix the two models in the same compilation unit.<br><br>
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.<br><br>Since then, the open
source project I contribute to has switched to Qt 5.1.0, so I revisited the link issue.<br>But, unfortunately, that version of Qt switched back to DWARF...<br>The trigger for the switch was performance issues with SJLJ.<br>
<br>The switch was announced and motivated here : <a href="http://lists.qt-project.org/pipermail/development/2013-April/010667.html" target="_blank">http://lists.qt-project.org/pipermail/development/2013-April/010667.html</a><br>
Additionaly, this page compares the exception models and arguments the choice made by Qt : <a href="http://qt-project.org/wiki/MinGW-64-bit" target="_blank">http://qt-project.org/wiki/MinGW-64-bit</a><br><br>Here is the failing link command:<br>
<br>g++ -shared -mthreads -Wl,--out-implib,D:/Projects/OP5/build/openpilotgcs_debug/lib/openpilotgcs/libGST_libd.a -o ../../../lib/openpilotgcs/GST_libd.dll<br>debug/gst_global.o debug/videowidget.o debug/moc_videowidget.o<br>
-lglu32 -lopengl32 -lgdi32 -luser32<br>-LD:/Projects/OP5/build/openpilotgcs_debug/lib/openpilotgcs -Ld:/gstreamer/1.0/x86/lib -lgobject-2.0 -lglib-2.0
-lgstreamer-1.0<br>-Ld:/Projects/OpenPilotTools/qt-5.1.0/5.1.0/mingw48_32/lib -lQt5Testd -lQt5Guid -lQt5Cored<br><br>debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebug6StreamD1Ev+0x13): undefined reference to `__gxx_personality_v0'<br>
debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebugD1Ev+0x13): undefined reference to `__gxx_personality_v0'<br>debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN6QDebuglsEPKc+0x13): undefined reference to `__gxx_personality_v0'<br>
debug/gst_global.o:gst_global.cpp:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'<br>debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN5QListI7QStringE6appendERKS0_+0x13): undefined reference to `__gxx_personality_v0'<br>
debug/gst_global.o:gst_global.cpp:(.eh_frame$_ZN5QListI7QStringE9node_copyEPNS1_4NodeES3_S3_+0x13): more undefined references to `__gxx_personality_v0' follow<br>debug/videowidget.o: In function
`ZN11VideoWidgetC2EP7QWidget':<br>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'<br>
<snip><br></span></div></div></div></blockquote><div> </div><div><br></div><div>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)<br>
<br>Cheers<br>Andoni<br><br></div></div></div></div>