Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Build qtwebengine for embedded linux



  • Hi, I'm trying to build Qt 5.8.1 from source. I downloaded the source code and I run configure using this command :

    ./configure -release -opensource -confirm-license -device linux-s500-g++ -sysroot /mnt/lemaker/ -device-option CROSS_COMPILE=/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -prefix /opt/qt5-arm  -nomake examples -nomake tests
    

    After that it shows me the list of configuration and asked me to run make then make install
    When I run make I get this problem:

    code_textmake[1]: Entering directory '/qt5/qtwebengine'
    /qt5/qtbase/bin/qmake -o Makefile qtwebengine.pro
    Running configure tests
    Checking for alsa... yes
    Checking for khr... yes
    Checking for libvpx... no
    Checking for snappy... yes
    Checking for srtp... no
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /mnt/lemaker//usr/lib/pkgconfig:/mnt/lemaker//usr/share/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /mnt/lemaker/
    System zlib or minizip not found. Using Chromium's copies.
    System libwebp or libwebpdemux not found. Using Chromium's copies.
    System libxml2 or libxslt not found. Using Chromium's copies.
    System libevent not found. Using Chromium's copy.
    System jsoncpp not found. Using Chromium's copy.
    System opus not found. Using Chromium's copy.
    System protobuf not found. Using Chromium's copy.
    Protobuf compiler not found. Using Chromium's copy of protobuf.
    Compatible system libvpx not found. Using Chromium's copy.
    System libsrtp not found. Using Chromium's copy.
    System library dependencies:
      ICU ................................ System ICU not found
      FFMPEG ............................. System FFMPEG not found
      Optional system libraries used ..... snappy
      Optional bundled libraries used .... libevent jsoncpp opus protobuf protobuf libvpx srtp
    Configurable features:
      Proprietary codecs (H264, MP3) ..... Enabled
      Geolocation ........................ Enabled
      Certificate handling ............... Using system NSS
     
    Unmet dependency: dbus-1 
    Unmet dependency: fontconfig 
    Unmet dependency: libpulse 
    Unmet dependency: libpng 
    Unmet dependencies: icu-uc, icu-i18n 
    Unmet dependencies: libavcodec, libavformat, libavutil
    QtWebEngine will not be built.
    
    

    I tried to change functions.pri as detailed in https://forum.qt.io/topic/59113/qtwebengine-embedded
    Why Qtwebengine won't be built and how to build it.


  • Qt Champions 2019

    @Iheb said in Build qtwebengine for embedded linux:

    Why Qtwebengine won't be built and how to build it.

    Check the config.log file to see what is missing.



  • hey @jsulm thank you for your quick reply. I checked the config.log file and found these errors:

    
    ```make[2]: Entering directory '/qt5/qtwebengine/tools/qmake/config.tests/libvpx'
    > /gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe --sysroot=/mnt/lemaker/ -O2 -Wall -W -fPIC  -I. -I/qt5/qtbase/mkspecs/devices/linux-s500-g++ -o libvpx.o libvpx.cpp
    > libvpx.cpp:29:10: fatal error: vpx/svc_context.h: No such file or directory
    >  #include <vpx/svc_context.h>
    >           ^~~~~~~~~~~~~~~~~~~
    > compilation terminated.
    > Makefile:901: recipe for target 'libvpx.o' failed
    > make[2]: *** [libvpx.o] Error 1
    make[2]: Leaving directory '/qt5/qtwebengine/tools/qmake/config.tests/libvpx'
    test libvpx FAILED
    
    And also this:
    ```make[2]: Entering directory '/qt5/qtwebengine/tools/qmake/config.tests/srtp'
    > /gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe --sysroot=/mnt/lemaker/ -O2 -Wall -W -fPIC  -I. -I/qt5/qtbase/mkspecs/devices/linux-s500-g++ -o srtp.o srtp.cpp
    > srtp.cpp:29:10: fatal error: srtp/srtp.h: No such file or directory
    >  #include <srtp/srtp.h>
    >           ^~~~~~~~~~~~~
    > compilation terminated.
    > Makefile:901: recipe for target 'srtp.o' failed
    > make[2]: *** [srtp.o] Error 1
    > make[2]: Leaving directory '/qt5/qtwebengine/tools/qmake/config.tests/srtp'
    test srtp FAILED
    

  • Qt Champions 2019

    @Iheb You need to install libvpx and libvpx-dev I guess for your target device



  • @jsulm yes I think that is the solution. However after installing libvpx and the dev package I get the same error: svc_context.h: No such file or directory I took a look in /usr/lib and didn't find the file. After a little search I found that the newest version of libvpx-dev doesn't have svc_context.h. I'll post the solution when I find it. Thanks


  • Qt Champions 2019

    @Iheb Did you install it in your sysroot (or synced sysroot after installation)?



  • @jsulm I've installed it in my target device (LeMaker Guitar) and I'm using sshfs to get the board's rootfs on my desktop so I think it's synced.


  • Moderators

    @Iheb said in Build qtwebengine for embedded linux:

    After that it shows me the list of configuration

    please post this configuration summary output



  • @raven-worx Okay here is the configuration summary:

    Configure summary:
    
    Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
    Building for: devices/linux-s500-g++ (arm, CPU features: <none>)
    Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile precompile_header shared rpath accessibility release c++11 c++14 c++1z concurrent dbus mremap reduce_exports stl
    Build options:
      Mode ................................... release
      Building shared libraries .............. yes
      Using C++ standard ..................... C++1z
      Using gold linker ...................... yes
      Using new DTAGS ........................ yes
      Using precompiled headers .............. yes
      Using LTCG ............................. no
      Target compiler supports:
        NEON ................................. no
      Build parts ............................ libs
    Qt modules and options:
      Qt Concurrent .......................... yes
      Qt D-Bus ............................... yes
      Qt D-Bus directly linked to libdbus .... yes
      Qt Gui ................................. yes
      Qt Network ............................. yes
      Qt Sql ................................. yes
      Qt Testlib ............................. yes
      Qt Widgets ............................. yes
      Qt Xml ................................. yes
    Support enabled for:
      Accessibility .......................... yes
      Using pkg-config ....................... yes
      QML debugging .......................... yes
      udev ................................... yes
      Using system zlib ...................... yes
    Qt Core:
      DoubleConversion ....................... yes
        Using system DoubleConversion ........ no
      GLib ................................... yes
      iconv .................................. no
      ICU .................................... yes
      Logging backends:
        journald ............................. no
        syslog ............................... no
        slog2 ................................ no
      Using system PCRE ...................... no
    Qt Network:
      getaddrinfo() .......................... yes
      getifaddrs() ........................... yes
      IPv6 ifname ............................ yes
      libproxy ............................... no
      OpenSSL ................................ yes
        Qt directly linked to OpenSSL ........ no
      SCTP ................................... no
      Use system proxies ..................... yes
    Qt Sql:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... no
      PostgreSQL ............................. yes
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... no
    Qt Gui:
      FreeType ............................... yes
        Using system FreeType ................ yes
      HarfBuzz ............................... yes
        Using system HarfBuzz ................ no
      Fontconfig ............................. yes
      Image formats:
        GIF .................................. yes
        ICO .................................. yes
        JPEG ................................. yes
          Using system libjpeg ............... yes
        PNG .................................. yes
          Using system libpng ................ yes
      OpenGL:
        EGL .................................. yes
        Desktop OpenGL ....................... yes
        OpenGL ES 2.0 ........................ no
        OpenGL ES 3.0 ........................ no
        OpenGL ES 3.1 ........................ no
      Session Management ..................... yes
    Features used by QPA backends:
      evdev .................................. yes
      libinput ............................... yes
      mtdev .................................. no
      tslib .................................. no
      xkbcommon-evdev ........................ yes
    QPA backends:
      DirectFB ............................... no
      EGLFS .................................. yes
      EGLFS details:
        EGLFS i.Mx6 .......................... no
        EGLFS i.Mx6 Wayland .................. no
        EGLFS EGLDevice ...................... no
        EGLFS GBM ............................ yes
        EGLFS Mali ........................... no
        EGLFS Raspberry Pi ................... no
        EGL on X11 ........................... yes
      LinuxFB ................................ yes
      Mir client ............................. no
      X11:
        Using system-provided XCB libraries .. no
        EGL on X11 ........................... yes
        Xinput2 .............................. yes
        XCB XKB .............................. yes
        XLib ................................. yes
        XCB render ........................... yes
        XCB GLX .............................. yes
        XCB Xlib ............................. yes
        Using system-provided xkbcommon ...... no
    Qt Widgets:
      GTK+ ................................... no
      Styles ................................. Fusion Windows
    Qt PrintSupport:
      CUPS ................................... yes
    Qt SerialBus:
      Socket CAN ............................. yes
      Socket CAN FD .......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt QML:
      QML interpreter ........................ yes
      QML network support .................... yes
    Qt Quick:
      Direct3D 12 ............................ no
      AnimatedImage item ..................... yes
      Canvas item ............................ yes
      Support for Quick Designer ............. yes
      Flipable item .......................... yes
      GridView item .......................... yes
      ListView item .......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    Qt Gamepad:
      SDL2 ................................... no
    Qt 3D:
      System Assimp .......................... no
    Qt Wayland Client ........................ no
    Qt Wayland Compositor .................... no
    Qt Bluetooth:
      BlueZ .................................. no
      BlueZ Low Energy ....................... no
      Linux Crypto API ....................... no
    Qt Sensors:
      sensorfw ............................... no
    Qt Multimedia:
      ALSA ................................... yes
      GStreamer 1.0 .......................... yes
      GStreamer 0.10 ......................... no
      Video for Linux ........................ yes
      OpenAL ................................. no
      PulseAudio ............................. yes
      Resource Policy (libresourceqt5) ....... no
      DirectShow ............................. no
      Windows Media Foundation ............... no
    Qt Location:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. no
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... yes
      PulseAudio ............................. yes
    
    Note: Also available for Linux: linux-clang linux-kcc linux-icc linux-cxx
    
    Note: Dropped compiler flags '-pthread' when detecting library 'glib'.
    
    Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer'.
    
    Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer_app'.
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into '/mnt/lemaker//opt/qt5-arm'.
    


  • @jsulm I managed to add the svc_context.h file in vpx and after running make I get this output:

    make[1]: Entering directory '/qt5/qtwebengine'
    /qt5/qtbase/bin/qmake -o Makefile qtwebengine.pro
    Running configure tests
    Checking for alsa... yes
    Checking for khr... yes
    Checking for libvpx... yes
    Checking for snappy... yes
    Checking for srtp... yes
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /mnt/lemaker//usr/lib/pkgconfig:/mnt/lemaker//usr/share/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /mnt/lemaker/
    System zlib or minizip not found. Using Chromium's copies.
    System libwebp or libwebpdemux not found. Using Chromium's copies.
    System libxml2 or libxslt not found. Using Chromium's copies.
    System libevent not found. Using Chromium's copy.
    System jsoncpp not found. Using Chromium's copy.
    System opus not found. Using Chromium's copy.
    System protobuf not found. Using Chromium's copy.
    System library dependencies:
      ICU ................................ Using internal copy (Default, force system ICU with WEBENGINE_CONFIG+=use_system_icu)
      FFMPEG ............................. Using internal copy (Default, force system FFMPEG with WEBENGINE_CONFIG+=use_system_ffmpeg)
      Optional system libraries used ..... vpx libsrtp snappy
      Optional bundled libraries used .... libevent jsoncpp opus protobuf icu ffmpeg
    Configurable features:
      Proprietary codecs (H264, MP3) ..... Not enabled         (Default, enable with WEBENGINE_CONFIG+=use_proprietary_codecs)
      Geolocation ........................ Enabled
      Certificate handling ............... Using bundled BoringSSL
     
    Unmet dependency: dbus-1 
    Unmet dependency: fontconfig 
    Unmet dependency: libpulse 
    Unmet dependency: libpng
    QtWebEngine will not be built.
    make[1]: Nothing to be done for 'first'.
    make[1]: Leaving directory '/qt5/qtwebengine'
    

    Qtwebengine still won't be built and I get no errors in config.log file


  • Qt Champions 2019

    @Iheb Please run configure from a clean state without artefacts from previous runs.


Log in to reply