How to build Qt for Raspberry Pi3



  • All,
    I am following the well-known ELGFS Qt build for cross compiling Qt for Raspberry Pi. I have successfully done this using Qt5.7 for the RPi2. Never could get it to work for RPi3. Now that 5.8 is available I am once again trying to build for RPi3.
    I am building for open source using this config line:
    ./configure -release -opengl es2 -device linux-rpi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v -nomake examples -nomake tests -no-use-gold-linker

    All seems well until make throws these errors:

    /home/syoung/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)'
    /home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::connected()@Qt_5'
    /home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::QTcpServer(QObject*)@Qt_5'
    collect2: error: ld returned 1 exit status
    Makefile:90: recipe for target '../../../bin/canbusutil' failed
    make[4]: *** [../../../bin/canbusutil] Error 1
    make[4]: Leaving directory '/home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src/tools/canbusutil'
    Makefile:42: recipe for target 'sub-canbusutil-make_first' failed
    make[3]: *** [sub-canbusutil-make_first] Error 2
    make[3]: Leaving directory '/home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src/tools'
    Makefile:95: recipe for target 'sub-tools-make_first' failed
    make[2]: *** [sub-tools-make_first] Error 2
    make[2]: Leaving directory '/home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src'
    Makefile:44: recipe for target 'sub-src-make_first' failed
    make[1]: *** [sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/syoung/raspi/qt-everywhere-opensource-src-5.8.0/qtserialbus'
    Makefile:229: recipe for target 'module-qtserialbus-make_first' failed
    make: *** [module-qtserialbus-make_first] Error 2
    syoung@Linux-Laptop:~/raspi/qt-everywhere-opensource-src-5.8.0$ 
    
    I do need qtSerial but not the CAN stuff.
    
    Can anyone help?
    Thanks
    

  • Moderators

    @sly110 There was another thread with a similar problem, and IIRC it was because of mixing 2 different versions of Qt. Make sure you have a clean environment on your build system so it isn't picking up your system level Qt for your build.

    I may be recalling incorrectly, but you could search it or check the sub forums and find that post/answer. :)



  • @sly110

    Before
    git clone http://code.qt.io/qt/qtserialbus.git
    cd qtserialbus
    qmake
    make
    make install
    After
    git clone http://code.qt.io/qt/qtserialport.git
    cd qtserialport
    qmake
    make
    make install
    I build qt on RPI 3 and I work with qt serial port. I received the following link as a reference and a successful result.
    Referance: [http://wiki.qt.io/RaspberryPi2EGLFS]

    Good luck.



  • @aktay
    Thank you for the advice. I have followed this document MANY times and only once did I get 5.7 to compile for RPi2. But it does not have webView or virtual keyboard which I need. My goal is to follow the document using RPi3 and Qt5.8 everywhere BUT to date regardless of what I try it ALWAYS fails. Usually for different reasons. The latest is wont build webEngine. I have followed MANY other docs as well in which people were successful and my builds still fail.
    I will keep trying. Thank you.



  • @sly110 said in How to build Qt for Raspberry Pi3:

    I will keep trying. Thank you.

    Did you follow the instructions below? I tried and it works for Qt 5.8.
    [https://github.com/Kukkimonsuta/rpi-buildqt])



  • @sly110 said in How to build Qt for Raspberry Pi3:

    webView

    The problem with the web components is that compiling it takes a lot of memory that the Pi just don't have.



  • @aktay
    Thank you! This is an amazing link.

    I still have problem building webView (as it needs web engine) which will not build

    File "/home/syoung/raspi/src/qtwebengine/src/3rdparty/chromium/third_party/WebKit/Source/build/scripts/in_generator.py", line 108, in main
    writer.write_files(options.output_dir)
    File "/home/syoung/raspi/src/qtwebengine/src/3rdparty/chromium/third_party/WebKit/Source/build/scripts/in_generator.py", line 60, in write_files
    self._write_file_if_changed(output_dir, generator(), file_name)
    File "../../3rdparty/chromium/third_party/WebKit/Source/build/scripts/make_css_property_names.py", line 233, in generate_implementation
    gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True)
    File "/usr/lib/python2.7/subprocess.py", line 711, in init
    errread, errwrite)
    File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
    OSError: [Errno 2] No such file or directory
    ninja: build stopped: subcommand failed.
    Makefile.gn_run:343: recipe for target 'run_ninja' failed
    make[3]: *** [run_ninja] Error 1
    make[3]: Leaving directory '/home/syoung/raspi/src/qtwebengine/src/core'
    Makefile:78: recipe for target 'sub-gn_run-pro-make_first' failed
    make[2]: *** [sub-gn_run-pro-make_first] Error 2
    make[2]: Leaving directory '/home/syoung/raspi/src/qtwebengine/src/core'
    Makefile:75: recipe for target 'sub-core-make_first' failed
    make[1]: *** [sub-core-make_first] Error 2
    make[1]: Leaving directory '/home/syoung/raspi/src/qtwebengine/src'
    Makefile:44: recipe for target 'sub-src-make_first' failed
    make: *** [sub-src-make_first] Error 2



  • @sly110
    You can try to recompile the module.

    sudo git clone http://code.qt.io/qt/qtwebengine -b 5.8
    cd qtwebengine
    sudo ~/raspi/build/qt5.8-host/bin/qmake -r // If I'm not mistaken, it is correct path.check it please.
    sudo make -r
    sudo make install -r
    

    Good luck.



  • @sly110
    did you install gperf? It´s needed to build WebEngine.



  • @sneubert

    Hi yes I installed these on the Pi in addition to the packages listed in
    https://github.com/Kukkimonsuta/rpi-buildqt
    RPi Install ninja on Rpi & resync
    Rpi Install ruby on Rpi & resync
    Rpi Installed Libxss
    Rpi Installed Ninja-build
    RPI installed gperf

    when I build per aktay's recommendation I get an error in qmake step:

    using python: /usr/bin/python version: 2.7.12
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Updating projects from gyp files...
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/resources/resources.gyp
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/core_generated.gyp
    Project ERROR: -- running gyp_qtwebengine failed --
    

    FYI: This is the config summary from the qmake step from aktay:

    //Configure summary:
    
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... yes
      PulseAudio ............................. yes
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, Qt is installed.
    You should NOT run 'make install'.
    Note that this build cannot be deployed to other machines or devices``
    
    Thanks to everyone.


  • @sly110
    Can you share the error and the operation you are doing?



  • @aktay

    I am following your reply exactly:

    in src directory:
    sudo git clone http://code.qt.io/qt/qtwebengine -b 5.8
    cd qtwebengine
    sudo ~/raspi/build/qt5.8-host/bin/qmake -r
    //fails so:
    Sudo git submodule update --init
    //retry
    sudo ~/raspi/build/qt5.8-host/bin/qmake -r

    //young@Ubuntu16-VM:~/raspi/src/qtwebengine$ sudo git submodule update --init
    Submodule 'src/3rdparty' (http://code.qt.io/qt/qtwebengine-chromium.git) registered for path 'src/3rdparty'
    Cloning into 'src/3rdparty'...
    remote: Counting objects: 477672, done.
    remote: Compressing objects: 100% (372217/372217), done.
    remote: Total 477672 (delta 294694), reused 168949 (delta 97583)
    Receiving objects: 100% (477672/477672), 797.76 MiB | 3.47 MiB/s, done.
    Resolving deltas: 100% (294694/294694), done.
    Checking connectivity... done.
    Submodule path 'src/3rdparty': checked out '675c165d44ac5d39e9b37263e561dc1673f3bfa4'
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ sudo ~/raspi/build/qt5.8-host/bin/qmake -r
    [sudo] password for syoung: 
    
    Running configuration tests...
    Done running configuration tests.
    
    Configure summary:
    
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... yes
      PulseAudio ............................. yes
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, Qt is installed.
    You should NOT run 'make install'.
    Note that this build cannot be deployed to other machines or devices.
    
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
    
    Running configure tests
    Checking for alsa... yes
    Checking for khr... yes
    Checking for libvpx... no
    Checking for snappy... no
    Checking for srtp... no
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /home/syoung/raspi/sysroot/usr/lib/pkgconfig:/home/syoung/raspi/sysroot/usr/share/pkgconfig:/home/syoung/raspi/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /home/syoung/raspi/sysroot
    System zlib or minizip not found. Using Chromium's copies.
    System libwebp or libwebpdemux 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.
    Compatible system libvpx not found. Using Chromium's copy.
    System libsrtp not found. Using Chromium's copy.
    System snappy 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 ..... libxslt libxml2
      Optional bundled libraries used .... libevent jsoncpp opus protobuf libvpx srtp snappy icu ffmpeg
    Configurable features:
      Proprietary codecs (H264, MP3) ..... Not enabled         (Default, enable with WEBENGINE_CONFIG+=use_proprietary_codecs)
      Geolocation ........................ Not enabled         (Requires Qt Positioning module)
      Certificate handling ............... Using bundled BoringSSL
    Reading /home/syoung/raspi/src/qtwebengine/src/src.pro
     Reading /home/syoung/raspi/src/qtwebengine/src/core/core.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/core_headers.pro
    Project MESSAGE: perl -w /home/syoung/raspi/build/qt5.8-host/bin/syncqt.pl -module QtWebEngineCore -version 5.8.1 -outdir /home/syoung/raspi/src/qtwebengine /home/syoung/raspi/src/qtwebengine
    <srcbase> = /home/syoung/raspi/src/qtwebengine 
    <outbase> = /home/syoung/raspi/src/qtwebengine 
    QtWebEngineCore: created fwd-include header(s) for <srcbase>/src/core/api/ { qtwebenginecoreglobal.h (1), qtwebenginecoreglobal_p.h (1), qwebenginecallback.h (2), qwebenginecallback_p.h (1), qwebenginecookiestore.h (2), qwebenginecookiestore_p.h (1), qwebengineurlrequestinfo.h (2), qwebengineurlrequestinfo_p.h (1), qwebengineurlrequestinterceptor.h (2), qwebengineurlrequestjob.h (2), qwebengineurlschemehandler.h (2) }
    QtWebEngineCore: created version header
    QtWebEngineCore: created master header
    QtWebEngineCore: created headers.pri file
      Reading /home/syoung/raspi/src/qtwebengine/src/core/core_gyp_generator.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_configure_host.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_configure_target.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_run.pro
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /home/syoung/raspi/sysroot/usr/lib/pkgconfig:/home/syoung/raspi/sysroot/usr/share/pkgconfig:/home/syoung/raspi/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /home/syoung/raspi/sysroot
    Project MESSAGE: Running gyp_qtwebengine "/home/syoung/raspi/src/qtwebengine/src/core" -D qt_cross_compile=1 -D os_posix=1 -D qt_os="embedded_linux" -I config/embedded_linux.gypi -D pkg-config="/home/syoung/raspi/src/qtwebengine/src/core/pkg-config_wrapper.sh 2> /dev/null" -D use_qt=1 -D v8_use_external_startup_data=0 -D enable_web_speech=0 -D enable_extensions=0 -D linux_use_bundled_gold=0 -D linux_use_bundled_binutils=0 -D linux_use_gold_flags=0 -D toolkit_uses_gtk=0 -D use_ash=0 -D use_aura=1 -D use_cairo=0 -D use_clipboard_aurax11=0 -D use_cups=0 -D use_gconf=0 -D use_gio=0 -D use_gnome_keyring=0 -D use_kerberos=0 -D use_pango=0 -D use_openssl=1 -D use_allocator=none -D use_experimental_allocator_shim=0 -D use_nss_certs=0 -D use_nss_verifier=0 -D use_openssl_certs=1 -D use_system_libpng=1 -D use_system_libjpeg=1 -D use_pulseaudio=1 -D use_alsa=1 -D use_system_libxml=1 -D clang=0 -D desktop_linux=0 -D disable_nacl=1 -D embedded=1 -D enable_autofill_dialog=0 -D enable_automation=0 -D enable_basic_printing=0 -D enable_captive_portal_detection=0 -D enable_extensions=0 -D enable_google_now=0 -D enable_language_detection=0 -D enable_managed_users=0 -D enable_pdf=0 -D enable_plugin_installation=0 -D enable_plugins=0 -D enable_print_preview=0 -D enable_session_service=0 -D enable_task_manager=0 -D enable_themes=0 -D enable_webrtc=0 -D gtest_target_type=none -D host_clang=0 -D notifications=0 -D ozone_auto_platforms=0 -D ozone_platform_dri=0 -D ozone_platform_test=0 -D p2p_apis=0 -D safe_browsing=0 -D toolkit_views=1 -D use_custom_freetype=0 -D use_libpci=0 -D use_ozone=1 -D use_system_fontconfig=1 -D use_x11=0 -D v8_use_snapshot=false -D want_separate_host_toolset=1 -D angle_enable_gl=0  -D qtwe_process_name_debug=QtWebEngineProcess -D qtwe_process_name_release=QtWebEngineProcess -D disable_glibcxx_debug=1 -D remove_webcore_debug_symbols=1 -D remove_v8base_debug_symbols=1 -D disable_fatal_linker_warnings=1 -D sysroot="/home/syoung/raspi/sysroot" -D CXX="/home/syoung/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++" -D target_arch=arm -D arm_arch="armv8-a" -D arm_tune="cortex-a53" -D arm_float_abi="hard" -D arm_version="8" -D arm_fpu="crypto-neon-fp-armv8" -D arm_neon=1 -D release_optimize=s -D debug_optimize=s -D win_release_Optimization=1 -D release_unwind_tables=0 -D enable_spellcheck=1.
    using python: /usr/bin/python version: 2.7.12
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Updating projects from gyp files...
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/resources/resources.gyp
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/core_generated.gyp
    Project ERROR: -- running gyp_qtwebengine failed --
    ``


  • @sly110 said in How to build Qt for Raspberry Pi3:

    sudo git clone http://code.qt.io/qt/qtwebengine -b 5.8

    Are you sure git is installed? Try this, please.

    sudo apt-get install git
    sudo git clone http://code.qt.io/qt/qtwebengine -b 5.8
    cd qtwebengine
    sudo ~/raspi/build/qt5.8-host/bin/qmake -r
    sudo make -r
    sudo make install -r
    

    Will you share the output of the following commands with me?



  • @aktay
    1st of all - thank you so much for your help!

    git is definitely installed on host but was not installed on Pi. Installed & sync with 2_sync.sh.

    on host:

    //syoung@Ubuntu16-VM:~/raspi/src$ sudo git clone http://code.qt.io/qt/qtwebengine -b 5.8
    Cloning into 'qtwebengine'...
    remote: Counting objects: 28483, done.
    remote: Compressing objects: 100% (20287/20287), done.
    remote: Total 28483 (delta 21000), reused 10717 (delta 7667)
    Receiving objects: 100% (28483/28483), 7.77 MiB | 1.56 MiB/s, done.
    Resolving deltas: 100% (21000/21000), done.
    Checking connectivity... done.
    ``
    
    
    syoung@Ubuntu16-VM:~/raspi/src$ cd qtwebengine/
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ sudo ~/raspi/build/qt5.8-host/bin/qmake -r
    Info: creating stash file /home/syoung/raspi/src/qtwebengine/.qmake.stash
    Info: creating cache file /home/syoung/raspi/src/qtwebengine/.qmake.cache
    
    Running configuration tests...
    Checking for ALSA... yes
    Checking for PulseAudio >= 0.9.10... yes
    Done running configuration tests.
    
    Configure summary:
    
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... yes
      PulseAudio ............................. yes
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, Qt is installed.
    You should NOT run 'make install'.
    Note that this build cannot be deployed to other machines or devices.
    
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
    
    Project ERROR: Submodule qtwebengine-chromium does not exist. Run 'git submodule update --init'.
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ 
    
    sudo git submodule update --init
    ...
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ sudo git submodule update --init
    Submodule 'src/3rdparty' (http://code.qt.io/qt/qtwebengine-chromium.git) registered for path 'src/3rdparty'
    Cloning into 'src/3rdparty'...
    remote: Counting objects: 477672, done.
    remote: Compressing objects: 100% (372217/372217), done.
    remote: Total 477672 (delta 294696), reused 168949 (delta 97583)
    Receiving objects: 100% (477672/477672), 797.69 MiB | 4.51 MiB/s, done.
    Resolving deltas: 100% (294696/294696), done.
    Checking connectivity... done.
    Submodule path 'src/3rdparty': checked out '675c165d44ac5d39e9b37263e561dc1673f3bfa4'
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ 
    
    
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ sudo ~/raspi/build/qt5.8-host/bin/qmake -r
    
    Running configuration tests...
    Done running configuration tests.
    
    Configure summary:
    
    Qt WebEngine:
      Proprietary Codecs ..................... no
      Spellchecker ........................... yes
      ALSA ................................... yes
      PulseAudio ............................. yes
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, Qt is installed.
    You should NOT run 'make install'.
    Note that this build cannot be deployed to other machines or devices.
    
    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.
    
    Running configure tests
    Checking for alsa... yes
    Checking for khr... yes
    Checking for libvpx... no
    Checking for snappy... no
    Checking for srtp... no
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /home/syoung/raspi/sysroot/usr/lib/pkgconfig:/home/syoung/raspi/sysroot/usr/share/pkgconfig:/home/syoung/raspi/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /home/syoung/raspi/sysroot
    System zlib or minizip not found. Using Chromium's copies.
    System libwebp or libwebpdemux 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.
    Compatible system libvpx not found. Using Chromium's copy.
    System libsrtp not found. Using Chromium's copy.
    System snappy 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 ..... libxslt libxml2
      Optional bundled libraries used .... libevent jsoncpp opus protobuf libvpx srtp snappy icu ffmpeg
    Configurable features:
      Proprietary codecs (H264, MP3) ..... Not enabled         (Default, enable with WEBENGINE_CONFIG+=use_proprietary_codecs)
      Geolocation ........................ Not enabled         (Requires Qt Positioning module)
      Certificate handling ............... Using bundled BoringSSL
    Reading /home/syoung/raspi/src/qtwebengine/src/src.pro
     Reading /home/syoung/raspi/src/qtwebengine/src/core/core.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/core_headers.pro
    Project MESSAGE: perl -w /home/syoung/raspi/build/qt5.8-host/bin/syncqt.pl -module QtWebEngineCore -version 5.8.1 -outdir /home/syoung/raspi/src/qtwebengine /home/syoung/raspi/src/qtwebengine
    <srcbase> = /home/syoung/raspi/src/qtwebengine 
    <outbase> = /home/syoung/raspi/src/qtwebengine 
    QtWebEngineCore: created fwd-include header(s) for <srcbase>/src/core/api/ { qtwebenginecoreglobal.h (1), qtwebenginecoreglobal_p.h (1), qwebenginecallback.h (2), qwebenginecallback_p.h (1), qwebenginecookiestore.h (2), qwebenginecookiestore_p.h (1), qwebengineurlrequestinfo.h (2), qwebengineurlrequestinfo_p.h (1), qwebengineurlrequestinterceptor.h (2), qwebengineurlrequestjob.h (2), qwebengineurlschemehandler.h (2) }
    QtWebEngineCore: created version header
    QtWebEngineCore: created master header
    QtWebEngineCore: created headers.pri file
      Reading /home/syoung/raspi/src/qtwebengine/src/core/core_gyp_generator.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_configure_host.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_configure_target.pro
      Reading /home/syoung/raspi/src/qtwebengine/src/core/gyp_run.pro
    Project MESSAGE: PKG_CONFIG_LIBDIR automatically set to /home/syoung/raspi/sysroot/usr/lib/pkgconfig:/home/syoung/raspi/sysroot/usr/share/pkgconfig:/home/syoung/raspi/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig
    Project MESSAGE: PKG_CONFIG_SYSROOT_DIR automatically set to /home/syoung/raspi/sysroot
    Project MESSAGE: Running gyp_qtwebengine "/home/syoung/raspi/src/qtwebengine/src/core" -D qt_cross_compile=1 -D os_posix=1 -D qt_os="embedded_linux" -I config/embedded_linux.gypi -D pkg-config="/home/syoung/raspi/src/qtwebengine/src/core/pkg-config_wrapper.sh 2> /dev/null" -D use_qt=1 -D v8_use_external_startup_data=0 -D enable_web_speech=0 -D enable_extensions=0 -D linux_use_bundled_gold=0 -D linux_use_bundled_binutils=0 -D linux_use_gold_flags=0 -D toolkit_uses_gtk=0 -D use_ash=0 -D use_aura=1 -D use_cairo=0 -D use_clipboard_aurax11=0 -D use_cups=0 -D use_gconf=0 -D use_gio=0 -D use_gnome_keyring=0 -D use_kerberos=0 -D use_pango=0 -D use_openssl=1 -D use_allocator=none -D use_experimental_allocator_shim=0 -D use_nss_certs=0 -D use_nss_verifier=0 -D use_openssl_certs=1 -D use_system_libpng=1 -D use_system_libjpeg=1 -D use_pulseaudio=1 -D use_alsa=1 -D use_system_libxml=1 -D clang=0 -D desktop_linux=0 -D disable_nacl=1 -D embedded=1 -D enable_autofill_dialog=0 -D enable_automation=0 -D enable_basic_printing=0 -D enable_captive_portal_detection=0 -D enable_extensions=0 -D enable_google_now=0 -D enable_language_detection=0 -D enable_managed_users=0 -D enable_pdf=0 -D enable_plugin_installation=0 -D enable_plugins=0 -D enable_print_preview=0 -D enable_session_service=0 -D enable_task_manager=0 -D enable_themes=0 -D enable_webrtc=0 -D gtest_target_type=none -D host_clang=0 -D notifications=0 -D ozone_auto_platforms=0 -D ozone_platform_dri=0 -D ozone_platform_test=0 -D p2p_apis=0 -D safe_browsing=0 -D toolkit_views=1 -D use_custom_freetype=0 -D use_libpci=0 -D use_ozone=1 -D use_system_fontconfig=1 -D use_x11=0 -D v8_use_snapshot=false -D want_separate_host_toolset=1 -D angle_enable_gl=0  -D qtwe_process_name_debug=QtWebEngineProcess -D qtwe_process_name_release=QtWebEngineProcess -D disable_glibcxx_debug=1 -D remove_webcore_debug_symbols=1 -D remove_v8base_debug_symbols=1 -D disable_fatal_linker_warnings=1 -D sysroot="/home/syoung/raspi/sysroot" -D CXX="/home/syoung/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++" -D target_arch=arm -D arm_arch="armv8-a" -D arm_tune="cortex-a53" -D arm_float_abi="hard" -D arm_version="8" -D arm_fpu="crypto-neon-fp-armv8" -D arm_neon=1 -D release_optimize=s -D debug_optimize=s -D win_release_Optimization=1 -D release_unwind_tables=0 -D enable_spellcheck=1.
    using python: /usr/bin/python version: 2.7.12
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qmake_extras.gypi
    Using extra options found in /home/syoung/raspi/src/qtwebengine/src/core/qtwebengine_extras.gypi
    Updating projects from gyp files...
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/resources/resources.gyp
    gyp: name 'arm_thumb' is not defined while evaluating condition 'arm_thumb==1' in /home/syoung/raspi/src/qtwebengine/src/core/core_generated.gyp
    Project ERROR: -- running gyp_qtwebengine failed --
    syoung@Ubuntu16-VM:~/raspi/src/qtwebengine$ 
    
    


  • @aktay

    FYI: using https://github.com/Kukkimonsuta/rpi-buildqt
    I have previously built:
    3.1, 3.2, 3.3. 34. AND svg, virtualkeyboard, serialport

    tried doing connectivity but it apparently depends on NFC that I did not see in the qt repo.



  • @sly110 said in How to build Qt for Raspberry Pi3:

    sudo git submodule update --init

    You can review the below guide.
    https://wiki.qt.io/How_to_Try_QtWebEngine



  • I believe this is finally solved although it was an arduous process.

    • Started with fresh Ubuntu16 LTS and fresh Jessie Lite

    • Followed Aktays instructions to manually build qtwebengine. Each time it failed, tried to determine missing dependencies. This is what is needed on the VM in addition to those listed in Kukkimonsuta/rpi-buildqt : gperf, bison, flex, gcc-mulitlib, g++ mulitlib, libx32gcc-4.8-dev.

    Thanks to everyone who helped!



  • @sly110
    What did you do that actually solved the "gyp: name 'arm_thumb' is not defined" error?

    Is this actually linked to missing dependencies on the host or target?

    I've been trying to cross-compile Qt 5.8 for my RPi3 many different ways now, including the steps mentioned here, but I always end up with this error when it tries to compile qtwebengine.



  • I am also trying to crosscompile qt in raspberry pi 2 for the past weeks following the

    https://www.ics.com/blog/configuring-qt-creator-raspberry-pi

    https://wiki.qt.io/RaspberryPi2EGLFS

    . I configured it without any errors. When i am running a console application the output is getting displayed on the raspberry pi but when i am trying to debug a widget application i am getting this displayed in my qt creator.

    Unable to find dynamic linker breakpoint function.
    GDB will be unable to debug shared library initializers
    and track explicitly loaded dynamic code.Could not load shared library symbols for 22 libraries, e.g. /usr/lib/arm-linux-gnueabihf/libarmmem.so.
    Use the "info sharedlibrary" command to see the complete listing.
    Do you need "set solib-search-path" or "set sysroot"?Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

    can anyone help me in this?
    thanks in advance



  • Hi amruz,

    the build of your qt libraries is not in you sysroot. You can either copy qt5pi directory to <your sysroot>/usr/local/ on your development host or tell gdb to load the libraries from your target (see https://forum.qt.io/topic/76928/raspberry-pi-3-debug-info-how-to-fix/38)



  • @sneubert i tried by writing these commands in additional startup commands in qt
    set sysroot target:/
    but the same warning is coming..
    when i am running a console app it is getting displayed in the raspberry without any problems.
    but for widget application

    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

    is coming.
    :(



  • @amruz

    ok, my answer was to solve the problem not beeing abel to debug your application:

    Unable to find dynamic linker breakpoint function.
    GDB will be unable to debug shared library initializers
    and track explicitly loaded dynamic code.Could not load shared library symbols for 22 libraries, e.g. /usr/lib/arm-linux-gnueabihf/libarmmem.so.
    Use the "info sharedlibrary" command to see the complete listing.
    Do you need "set solib-search-path" or "set sysroot"? 
    

    for the remaining message:

    Unable to query physical screen size, defaulting to 100 dpi.
    To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
    

    take a look at previous posts in this forum, e.g.
    https://forum.qt.io/topic/77387/eglfs-unable-to-query-physical-screen-size-defaulting-to-100-dpi



  • Work around for arm_thumb error is to be found here
    https://github.com/Kukkimonsuta/rpi-buildqt/pull/7

    Following
    https://github.com/Kukkimonsuta/rpi-buildqt/issues/8
    I succeeded even in compiling 5.9 (arm_thumb work around was not necessary any more)

    Both qtwebengine 5.8 and 5.9 work nicely and fast BUT mouse interaction does not work (only keyboard). Anybody had this experience? Very frustrating after all the trouble...


Log in to reply
 

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