[Development] can not build 5.9.1 qtmultimedia
Thiago Macieira
thiago.macieira at intel.com
Mon Jul 24 08:29:48 CEST 2017
On Sunday, 23 July 2017 22:58:30 PDT Kevin Kofler wrote:
> Thiago Macieira wrote:
> > No, this is the solution, unless you want to build in a chroot'ed build
> > root. In the environment where you're going to build a given software, you
> > must not have the development packages of that software already installed.
>
> That is utter nonsense. Any package that picks up headers or library
> symlinks from the old installed version instead of from the one you are
> currently building is buggy.
You're thinking only of a 1-software problem. This is complex when you have
more than one. Take this as an example: you want to build software for your
professional project but not pollute your system, so you build Qt and
GStreamer 1.0 but tell it to install in /opt/myproject.
That means /opt/myproject/lib/pkgconfig/gstreamer-1.0.pc file has:
prefix=/opt/myproject
exec_prefix=/opt/myproject
libdir=/opt/myproject/lib
So when Qt asks pkg-config for the path to the GStreamer library, it will
print:
-L/opt/myproject/lib -lgstreamer-1.0
That -L switch will make the linker find Qt libraries too.
Before you say, "well, list Qt libraries first", let me add another
complication: the plugin has this in the linker line:
-lQt5MultimediaGstTools.t -lQt5MultimediaWidgets.t -lQt5Multimedia.t
-lQt5Widgets.t -lQt5Gui.t -lQt5Network.t -lQt5Core.t
but if you ldd it after compiling, you find it loaded one more library
(Qt5OpenGL) because of an indirect dependency. So even if qmake listed the
Qt's own -L and its libraries first (and it does), we may still have a problem
due to the indirect dependency and how it's found by the linker.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development
mailing list