[Development] can not build 5.9.1 qtmultimedia

Martin Koller kollix at aon.at
Sun Jul 23 10:50:10 CEST 2017


Hi,

trying to build 5.9.1 (from downloaded qt-everywhere-opensource-src-5.9.1.tar.xz)
on openSuse 42.2, I get linker errors in the qtmultimedia module, e.g.

.obj/qgstreameraudiodecodersession.o: In function `WinCC_OA::QGstreamerAudioDecoderSession::configureAppSrcElement(_GObject*, _GObject*, _GParamSpec*, WinCC_OA::QGstreamerAudioDecoderSession*)':
/home/PACKAGES/qt/5.9.1/qt-everywhere-opensource-src-5.9.1/qtmultimedia/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp:154: undefined reference to `WinCC_OA::QGstAppSrc::setup(_GstElement*)'

I found this symbol to be in the qgsttools_p lib but I fear the linker takes the lib from a wrong path.

Looking into the qtmultimedia/src/plugins/gstreamer/audiodecoder/Makefile,
I find the LIBS definition which I don't understand (Note that I'm building Qt with a namespace/libinfix):

LIBS          = $(SUBLIBS) -lqgsttools_p -L/usr/lib64 -L/home/abuild/rpmbuild/BUILD/qtmultimedia-opensource-src-5.9.1/lib -lQt5MultimediaWidgets -lQt5Multimedia -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lasound -L/home/PACKAGES/qt/5.9.1/qt-everywhere-opensource-src-5.9.1/qtmultimedia/lib -lQt5MultimediaWidgetsWinCC_OA -L/home/PACKAGES/qt/5.9.1/qt-everywhere-opensource-src-5.9.1/qtbase/lib -lQt5MultimediaWinCC_OA -lQt5WidgetsWinCC_OA -lQt5GuiWinCC_OA -lQt5NetworkWinCC_OA -lQt5CoreWinCC_OA -lGL -lpthread -lgstaudio-1.0 -lgstvideo-1.0 -lgstpbutils-1.0 -lgstapp-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lpulse-mainloop-glib -lpulse -lglib-2.0 

A couple of questions:
-) -lqgsttools_p as first argument BEFORE any -L<path> would search for it in my system dirs, which is wrong.
-) why is -L/usr/lib64 there (should be a std. path, no?)
-) From where the heck comes this path "/home/abuild/rpmbuild/BUILD/qtmultimedia-opensource-src-5.9.1/lib" ?
   I don't have a /home/abuild directory on my system.
   This is the ONLY Makefile in the whole Qt tree which contains this path
-) -lQt5MultimediaWidgets and others: why are they used here instead of the namespaced/infixed versions, which are also given
   but later in the line ?

I just removed manually all the wrong entries in that line, being now
LIBS          = $(SUBLIBS) -lasound -L/home/PACKAGES/qt/5.9.1/qt-everywhere-opensource-src-5.9.1/qtmultimedia/lib -lqgsttools_p -lQt5MultimediaWidgetsWinCC_OA -L/home/PACKAGES/qt/5.9.1/qt-everywhere-opensource-src-5.9.1/qtbase/lib -lQt5MultimediaWinCC_OA -lQt5WidgetsWinCC_OA -lQt5GuiWinCC_OA -lQt5NetworkWinCC_OA -lQt5CoreWinCC_OA -lGL -lpthread -lgstaudio-1.0 -lgstvideo-1.0 -lgstpbutils-1.0 -lgstapp-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lpulse-mainloop-glib -lpulse -lglib-2.0 

and with that line it links without errors.

-- 
Best regards/Schöne Grüße

Martin
A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\                        - against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at



More information about the Development mailing list