QtMultimedia can't detect libs during cross-compilation



  • Re: Qt5.12.0 configure for iMx6 issue

    Hi. I have another one trouble with cross-compilation of Qt Multimedia,
    I have installed OpenGL ES libs (with dev packages) and GStreamer libs (also with -dev packages).

    QtCore detected all needed libs, e.g. OpenGL ES 2.0 and OpengGL ES 3.0 (here is QtCore config)

    However, Qt Multimedia doesn't see needed libraries (e.g Vivante GPU and GStreamer1.0)

    Running configuration tests...
    Checking for ALSA... no
    Checking for Vivante GPU... no
    Checking for GStreamer 1.0... no
    Checking for GStreamer 0.10... no
    Checking for Video for Linux... yes
    Checking for OpenAL... no
    Checking for PulseAudio >= 0.9.10... no
    Checking for libresourceqt5... no
    Done running configuration tests.
    
    Configure summary:
    
    Qt Multimedia:
      ALSA ................................... no
      GStreamer 1.0 .......................... no
      GStreamer 0.10 ......................... no
      Video for Linux ........................ yes
      OpenAL ................................. no
      PulseAudio ............................. no
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. no
      DirectShow ............................. no
      Windows Media Foundation ............... no
    

    Here is installed packaged on destination system (ubuntu1804-armhf):

    libgstreamer1.0-0
    libgstreamer1.0-dev
    gstreamer1.0-tools
    gstreamer1.0-plugins-base
    gstreamer1.0-plugins-good
    gstreamer1.0-plugins-base-apps
    libgstreamer-plugins-base1.0-dev
    

    I tried to check PKG_CONFIG and some includes on destination system (ubuntu1804-armhf):

    $ sudo chroot "sysroot" pkg-config --libs gstreamer-1.0
    -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    
    $ sudo chroot "sysroot" ls /usr/include/GLES2
    gl2.h  gl2ext.h  gl2platform.h	gl2rename.h  gl2unname.h
    
    $sudo chroot "sysroot" ls /usr/include/gstreamer-1.0/gst
    allocators  glib-compat.h     gstbus.h		 gstcontrolbinding.h	     gstdynamictypefactory.h  gstghostpad.h    gstobject.h	   gstpoll.h	    gststreamcollection.h  gsttoc.h		 gstutils.h	rtsp
    app	    gst.h	      gstcaps.h		 gstcontrolsource.h	     gstelement.h	      gstinfo.h        gstpad.h		   gstpreset.h	    gststreams.h	   gsttocsetter.h	 gstvalue.h	sdp
    audio	    gstallocator.h    gstcapsfeatures.h  gstdatetime.h		     gstelementfactory.h      gstiterator.h    gstpadtemplate.h    gstpromise.h     gststructure.h	   gsttracer.h		 gstversion.h	tag
    base	    gstatomicqueue.h  gstchildproxy.h	 gstdebugutils.h	     gstelementmetadata.h     gstmacros.h      gstparamspecs.h	   gstprotection.h  gstsystemclock.h	   gsttracerfactory.h	 math-compat.h	video
    check	    gstbin.h	      gstclock.h	 gstdevice.h		     gstenumtypes.h	      gstmemory.h      gstparse.h	   gstquery.h	    gsttaglist.h	   gsttracerrecord.h	 net
    controller  gstbuffer.h       gstcompat.h	 gstdevicemonitor.h	     gsterror.h		      gstmessage.h     gstpipeline.h	   gstregistry.h    gsttagsetter.h	   gsttypefind.h	 pbutils
    fft	    gstbufferlist.h   gstconfig.h	 gstdeviceprovider.h	     gstevent.h		      gstmeta.h        gstplugin.h	   gstsample.h	    gsttask.h		   gsttypefindfactory.h  riff
    gl	    gstbufferpool.h   gstcontext.h	 gstdeviceproviderfactory.h  gstformat.h	      gstminiobject.h  gstpluginfeature.h  gstsegment.h     gsttaskpool.h	   gsturi.h		 rtp
    

    As I see (from QtCore config) PKG_CONFIG and ToolChain were setted right and all needed packages were installed.

    Any ideas?
    What I'm doing wrong?

    Thanks!


  • Lifetime Qt Champion

    Hi,

    You should add the -v option to configure to see what exactly is happening with the GStreamer related tests.



  • @SGaist Thanks for answer. I think you mean parameter "-v" as "verbose" for "./configure". It is right for QtBase, because it configures via "./configure".

    But there is not "configure" script in qtmultimedia folder and QtMultimedia configures via qmake. So parameter -v means "version" (not "verbose"):

    cd qtmultimedia
    ../sysroot/opt/Qt5.9/bin/qmake  -v
    QMake version 3.1
    Using Qt version 5.9.8 in ../sysroot/opt/Qt5.9/lib
    


  • @SGaist here is query output:

    <SYSROOT_PATH>/opt/Qt5.9/bin/qmake -query 
    QT_SYSROOT:<SYSROOT_PATH>
    QT_INSTALL_PREFIX:<SYSROOT_PATH>/opt/Qt5.9
    QT_INSTALL_PREFIX/raw:/opt/Qt5.9
    QT_INSTALL_ARCHDATA:<SYSROOT_PATH>/opt/Qt5.9
    QT_INSTALL_ARCHDATA/raw:/opt/Qt5.9
    QT_INSTALL_DATA:<SYSROOT_PATH>/opt/Qt5.9
    QT_INSTALL_DATA/raw:/opt/Qt5.9
    QT_INSTALL_DOCS:<SYSROOT_PATH>/opt/Qt5.9/doc
    QT_INSTALL_DOCS/raw:/opt/Qt5.9/doc
    QT_INSTALL_HEADERS:<SYSROOT_PATH>/opt/Qt5.9/include
    QT_INSTALL_HEADERS/raw:/opt/Qt5.9/include
    QT_INSTALL_LIBS:<SYSROOT_PATH>/opt/Qt5.9/lib
    QT_INSTALL_LIBS/raw:/opt/Qt5.9/lib
    QT_INSTALL_LIBEXECS:<SYSROOT_PATH>/opt/Qt5.9/libexec
    QT_INSTALL_LIBEXECS/raw:/opt/Qt5.9/libexec
    QT_INSTALL_BINS:<SYSROOT_PATH>/opt/Qt5.9/bin
    QT_INSTALL_BINS/raw:/opt/Qt5.9/bin
    QT_INSTALL_TESTS:<SYSROOT_PATH>/opt/Qt5.9/tests
    QT_INSTALL_TESTS/raw:/opt/Qt5.9/tests
    QT_INSTALL_PLUGINS:<SYSROOT_PATH>/opt/Qt5.9/plugins
    QT_INSTALL_PLUGINS/raw:/opt/Qt5.9/plugins
    QT_INSTALL_IMPORTS:<SYSROOT_PATH>/opt/Qt5.9/imports
    QT_INSTALL_IMPORTS/raw:/opt/Qt5.9/imports
    QT_INSTALL_QML:<SYSROOT_PATH>/opt/Qt5.9/qml
    QT_INSTALL_QML/raw:/opt/Qt5.9/qml
    QT_INSTALL_TRANSLATIONS:<SYSROOT_PATH>/opt/Qt5.9/translations
    QT_INSTALL_TRANSLATIONS/raw:/opt/Qt5.9/translations
    QT_INSTALL_CONFIGURATION:<SYSROOT_PATH>/opt/Qt5.9/etc/xdg
    QT_INSTALL_CONFIGURATION/raw:/opt/Qt5.9/etc/xdg
    QT_INSTALL_EXAMPLES:<SYSROOT_PATH>/opt/Qt5.9/examples
    QT_INSTALL_EXAMPLES/raw:/opt/Qt5.9/examples
    QT_INSTALL_DEMOS:<SYSROOT_PATH>/opt/Qt5.9/examples
    QT_INSTALL_DEMOS/raw:/opt/Qt5.9/examples
    QT_HOST_PREFIX:<SYSROOT_PATH>/opt/Qt5.9
    QT_HOST_DATA:<SYSROOT_PATH>/opt/Qt5.9
    QT_HOST_BINS:<SYSROOT_PATH>/opt/Qt5.9/bin
    QT_HOST_LIBS:<SYSROOT_PATH>/opt/Qt5.9/lib
    QMAKE_SPEC:linux-g++
    QMAKE_XSPEC:devices/linux-imx6-g++
    QMAKE_VERSION:3.1
    QT_VERSION:5.9.8
    

    And here is config.log: https://pastebin.com/c58pvyNt

    Something strange bacause all includes and sysroot were setted right:

    + cd <CACHE_PATH>/qtmultimedia/config.tests/gstreamer && MAKEFLAGS= make
    > <CACHE_PATH>/gcc-linaro-7.4.1-2019.02-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard --sysroot=<SYSROOT_PATH> -pthread -I//usr/include/gstreamer-1.0 -I//usr/include/orc-0.4 -I//usr/include/gstreamer-1.0 -I//usr/include/glib-2.0 -I//usr/lib/arm-linux-gnueabihf/glib-2.0/include -g -w -fPIC  -I. -I<SYSROOT_PATH>/opt/Qt5.9/mkspecs/devices/linux-imx6-g++ -o main.o main.cpp
    > In file included from //usr/include/glib-2.0/glib/galloca.h:32:0,
    >                  from //usr/include/glib-2.0/glib.h:30,
    >                  from //usr/include/gstreamer-1.0/gst/gst.h:27,
    >                  from main.cpp:31:
    > //usr/include/glib-2.0/glib/gtypes.h:32:10: fatal error: glibconfig.h: No such file or directory
    >  #include <glibconfig.h>
    

    However glibconfig.h exists:

    $ sudo chroot "<SYSROOT_PATH>" pkg-config --cflags glib-2.0
    -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include
    
    $ sudo chroot "<SYSROOT_PATH>" ls /usr/lib/arm-linux-gnueabihf/glib-2.0/include
    glibconfig.h
    


  • @r3d9u11 Well, topic was solved with previous version of toolchain (g++ v6)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.