Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. QtonPi
  4. Has anyone successfully built Qt from source recently on a Pi?
Forum Updated to NodeBB v4.3 + New Features

Has anyone successfully built Qt from source recently on a Pi?

Scheduled Pinned Locked Moved Unsolved QtonPi
25 Posts 9 Posters 15.5k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A ambershark

    @andrewg Just so you don't go unanswered again.. :)

    I have built Qt by source a LOT on osx, linux and windows but not on an embedded device like a Pi.

    I'd be happy to help you resolve some errors if I can.

    What are the problems you are running into during the build?

    A Offline
    A Offline
    andrewg
    wrote on last edited by
    #4

    Thanks @ambershark!
    Up to now I've been working on building Qt5.7.1. If you're willing to help me through the build process I'm going to try this with 5.8.0 instead. My feeling is that each combination of Qt + Raspbian + Pi is going to require it's own set of patches, so let's just work with the latest and greatest for now :)

    I'll set up a build tonight and see if there is any low hanging fruit that I can resolve before putting questions to you.

    A 1 Reply Last reply
    2
    • A andrewg

      Thanks @ambershark!
      Up to now I've been working on building Qt5.7.1. If you're willing to help me through the build process I'm going to try this with 5.8.0 instead. My feeling is that each combination of Qt + Raspbian + Pi is going to require it's own set of patches, so let's just work with the latest and greatest for now :)

      I'll set up a build tonight and see if there is any low hanging fruit that I can resolve before putting questions to you.

      A Offline
      A Offline
      ambershark
      wrote on last edited by
      #5

      @andrewg Sure just post here with whatever issues you run into. Make sure to give me some idea of what you've done already, i.e. your ./configure line and whatever else you change/feel is important. :)

      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

      1 Reply Last reply
      0
      • nestoracN Offline
        nestoracN Offline
        nestorac
        wrote on last edited by nestorac
        #6

        I think raspbian comes with qt, not by default, but you can install it easily.

        1 Reply Last reply
        0
        • A Offline
          A Offline
          andrewg
          wrote on last edited by
          #7

          @nestorac - That's correct. apt-get has a package for Qt. I believe it is Qt 5.3. For my application I know that I'll need features that have been more recently introduced, but if you don't have those requirements the apt-get route will be much easier.

          @ambershark - I made some good progress on this, but still came up short. To keep things simple I tried to stick to the following guide as close as possible: https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi
          I'm using the qt-everywhere-opensource-src-5.8.0 source package. I also skipped the whole part about building on a flash drive since I'm not in a time crunch. This means I'm doing everything on the local SD card and I didn't add the extra swap file, but I'm also only running a single thread for the make step (not using the -j3 argument).

          On the first pass the build failed with the error "Project ERROR: Library 'libpng' is not defined." Some googling pointed me to this bug report which seems somewhat related: https://bugreports.qt.io/browse/QTBUG-57794. It seems like the issue is that the build process can't find my system libpng. I'm not too particular about where libpng comes from so I used the option to use Qt libpng. I started over with the same configure script and added the argument -qt-libpng at the end.

          The second pass failed trying to link canbusutil. The error message is below. I'll need serial bus functionality for my application so I'm not as comfortable adding configure options to alter how it builds. Do you have any ideas as to why these references are incorrect? Let me know if you need any more information.

          /usr/bin/g++ -Wl,-rpath-link,/opt/vc/lib -Wl,-rpath-link,/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/lib/arm-linux-gnueabihf -mfloat-abi=hard -Wl,--gc-sections -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath-link,/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/lib -Wl,-rpath-link,/home/pi/qt-everywhere-opensource-src-5.8.0/qtserialport/lib -o ../../../bin/canbusutil .obj/main.o .obj/readtask.o .obj/canbusutil.o .obj/sigtermhandler.o .obj/moc_readtask.o .obj/moc_canbusutil.o .obj/moc_sigtermhandler.o -L/home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib -lQt5SerialBus -L/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/lib -lQt5Core -lpthread
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::newConnection()@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::QTcpServer(QObject*)@Qt_5'
          /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::close()@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QHostAddress::~QHostAddress()@Qt_5'
          /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'qIsEffectiveTLD(QString const&)'
          /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'QNonContiguousByteDevice::disableReset()'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::connected()@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerName() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::state() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::staticMetaObject@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::isListening() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerAddress() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::disconnected()@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::errorString() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpSocket::QTcpSocket(QObject*)@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QHostAddress::QHostAddress(QString const&)@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerPort() const@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::staticMetaObject@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5'
          /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `operator<<(QDebug, QHostAddress const&)@Qt_5'
          collect2: error: ld returned 1 exit status
          Makefile:90: recipe for target '../../../bin/canbusutil' failed
          make[4]: *** [../../../bin/canbusutil] Error 1

          A 1 Reply Last reply
          0
          • A andrewg

            @nestorac - That's correct. apt-get has a package for Qt. I believe it is Qt 5.3. For my application I know that I'll need features that have been more recently introduced, but if you don't have those requirements the apt-get route will be much easier.

            @ambershark - I made some good progress on this, but still came up short. To keep things simple I tried to stick to the following guide as close as possible: https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi
            I'm using the qt-everywhere-opensource-src-5.8.0 source package. I also skipped the whole part about building on a flash drive since I'm not in a time crunch. This means I'm doing everything on the local SD card and I didn't add the extra swap file, but I'm also only running a single thread for the make step (not using the -j3 argument).

            On the first pass the build failed with the error "Project ERROR: Library 'libpng' is not defined." Some googling pointed me to this bug report which seems somewhat related: https://bugreports.qt.io/browse/QTBUG-57794. It seems like the issue is that the build process can't find my system libpng. I'm not too particular about where libpng comes from so I used the option to use Qt libpng. I started over with the same configure script and added the argument -qt-libpng at the end.

            The second pass failed trying to link canbusutil. The error message is below. I'll need serial bus functionality for my application so I'm not as comfortable adding configure options to alter how it builds. Do you have any ideas as to why these references are incorrect? Let me know if you need any more information.

            /usr/bin/g++ -Wl,-rpath-link,/opt/vc/lib -Wl,-rpath-link,/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/lib/arm-linux-gnueabihf -mfloat-abi=hard -Wl,--gc-sections -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath-link,/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/lib -Wl,-rpath-link,/home/pi/qt-everywhere-opensource-src-5.8.0/qtserialport/lib -o ../../../bin/canbusutil .obj/main.o .obj/readtask.o .obj/canbusutil.o .obj/sigtermhandler.o .obj/moc_readtask.o .obj/moc_canbusutil.o .obj/moc_sigtermhandler.o -L/home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib -lQt5SerialBus -L/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/lib -lQt5Core -lpthread
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::newConnection()@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::QTcpServer(QObject*)@Qt_5'
            /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::close()@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QHostAddress::~QHostAddress()@Qt_5'
            /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'qIsEffectiveTLD(QString const&)'
            /usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to 'QNonContiguousByteDevice::disableReset()'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::connected()@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerName() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::state() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::staticMetaObject@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::isListening() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerAddress() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::disconnected()@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::errorString() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpSocket::QTcpSocket(QObject*)@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QHostAddress::QHostAddress(QString const&)@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QAbstractSocket::peerPort() const@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::staticMetaObject@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to 'QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5'
            /home/pi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `operator<<(QDebug, QHostAddress const&)@Qt_5'
            collect2: error: ld returned 1 exit status
            Makefile:90: recipe for target '../../../bin/canbusutil' failed
            make[4]: *** [../../../bin/canbusutil] Error 1

            A Offline
            A Offline
            ambershark
            wrote on last edited by ambershark
            #8

            @andrewg Sorry haven't been around for a while, I've been very busy.

            That looks like you are having issues with network stuff. Both in QtNetwork as well as QtSerialBus.

            Check the Qt5SerialBus library to see if the symbols actually exist in there. You can do that with the nm command.

            Another option is it is pulling in a bad version (i.e. your desktop version) of the Qt networking stuff. That seems less likely though.

            My guess is those networking qt libs didn't build properly. Or the link line is lacking a library it needs. I'm not seeing it right off the top of my head though.

            My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

            1 Reply Last reply
            2
            • G Offline
              G Offline
              gzotti
              wrote on last edited by
              #9

              I just came across the same issue. While compiling Qt5.8 from sources, the linker tries to link against the installed qt5.3.2 version. apt-get remove libqt5* solved it.

              1 Reply Last reply
              1
              • msluserM Offline
                msluserM Offline
                msluser
                wrote on last edited by
                #10

                Hi,

                I am trying to build QT from source to run on a RPi 3.

                I tried to setup a cross compile tool chain but was unsuccessful because I had to first build a cross compile tool chain from source as I am on MacOS and I couldn't use the prebuild linaro gcc tool chains found at https://www.linaro.org/downloads/.

                I tried to build my own tool chain using instructions and scripts found at
                https://clxdev.wordpress.com/2016/06/20/building-linaro-toolchains-on-os-x/ but it was for older linaro releases.

                I was going to download the linaro source from http://releases.linaro.org/components/toolchain/binaries/latest/ But I couldn't determine which one applied to the Raspberry Pi.

                Jared Wolff created a precompiled toolchain for Raspberry Pi 3 on OsX Mavericks that is found at https://www.jaredwolff.com/toolchains/. I will give that a try soon.
                See https://www.jaredwolff.com/blog/cross-compiling-on-mac-osx-for-raspberry-pi/

                In the meantime I am trying to build QT from source right on the RPi 3 itself.

                I tried to follow the instructions at https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi

                My environment is

                • QT 5.8.0 from http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz
                • Raspberry Pi 3
                • Raspbian Jessie (2017-03-02)
                • PiTouch screen

                From folder ~/build-qt, my I executed

                ../qt-everywhere-opensource-src-5.8.0/configure -v -opengl es2  -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/urs/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -sysroot / -prefix /opt/Qt5.8 2>&1 | tee output.log
                

                Part of what the terminal displayed was ...

                Configure summary:
                
                Building on:  arm
                Building for: arm
                Configuration: cross_compile compile_examples enable_new_dtags largefile neon precompile_header shared rpath accessibility release c++11 c++14 concurrent dbus mremap reduce_exports release_tools stl
                Build options:
                  Mode ................................... release; optimized tools
                  Building shared libraries .............. yes
                  Using C++ standard ..................... C++14
                  Using gold linker ...................... no
                  Using new DTAGS ........................ yes
                  Using precompiled headers .............. yes
                  Using LTCG ............................. no
                  Target compiler supports:
                    NEON ................................. yes
                  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 Widgets ............................. 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
                  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 .................................. yes
                  OCI (Oracle) ........................... no
                  ODBC ................................... no
                  PostgreSQL ............................. yes
                  SQLite2 ................................ yes
                  SQLite ................................. yes
                    Using system provided SQLite ......... no
                  TDS (Sybase) ........................... yes
                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 ....................... no
                    OpenGL ES 2.0 ........................ yes
                    OpenGL ES 3.0 ........................ no
                    OpenGL ES 3.1 ........................ no
                  Session Management ..................... yes
                Features used by QPA backends:
                  evdev .................................. yes
                  libinput ............................... no
                  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 ............................ no
                    EGLFS Mali ........................... no
                    EGLFS Rasberry Pi .................... yes
                    EGL on X11 ........................... no
                  LinuxFB ................................ yes
                  Mir client ............................. no
                  X11:
                    Using system provided XCB libraries .. yes
                    EGL on X11 ........................... no
                    Xinput2 .............................. yes
                    XCB XKB .............................. no
                    XLib ................................. yes
                    Xrender .............................. 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 Drivers:
                  EGL .................................... no
                  Rasberry Pi ............................ yes
                  XComposite EGL ......................... no
                  XComposite GLX ......................... no
                  DRM EGL ................................ no
                  libhybris EGL .......................... no
                Qt Wayland Client ........................ yes
                Qt Wayland Compositor .................... yes
                Qt Bluetooth:
                  BlueZ .................................. yes
                  BlueZ Low Energy ....................... yes
                  Linux Crypto API ....................... yes
                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 Sensors:
                  sensorfw ............................... no
                Qt WebEngine:
                  Proprietary Codecs ..................... no
                  Spellchecker ........................... yes
                  ALSA ................................... yes
                  PulseAudio ............................. yes
                
                Note: PKG_CONFIG_LIBDIR automatically set to //usr/lib/pkgconfig://usr/share/pkgconfig://usr/lib/arm-linux-gnueabihf/pkgconfig
                
                Note: PKG_CONFIG_SYSROOT_DIR automatically set to /
                
                Note: -optimized-tools is not useful in -release mode.
                
                Note: Dropped compiler flags '-pthread' when detecting library 'glib'.
                
                Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
                
                Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer'.
                
                Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer_app'.
                
                
                Platform notes:
                
                            - Also available for Linux: linux-clang linux-kcc linux-icc linux-cxx
                        
                
                Qt is now configured for building. Just run 'make'.
                Once everything is built, you must run 'make install'.
                Qt will be installed into /opt/Qt5.8
                
                Prior to reconfiguration, make sure you remove any leftovers from
                the previous build.
                

                I executed

                make -j4 2>&1 | tee output_make.log
                

                End of what terminal displayed ...

                /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -shared -o libqsqlite.so .obj/qsql_sqlite.o .obj/smain.o .obj/sqlite3.o .obj/moc_qsql_sqlite_p.o  -L/home/pi/build-qt/qtbase/lib -lQt5Sql -lQt5Core -lpthread  
                mv -f libqsqlite.so ../../../../plugins/sqldrivers/ 
                make[5]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/sqldrivers/sqlite'
                make[4]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/sqldrivers'
                make[3]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins'
                Makefile:721: recipe for target 'sub-plugins-make_first' failed
                make[2]: *** [sub-plugins-make_first] Error 2
                make[2]: Leaving directory '/home/pi/build-qt/qtbase/src'
                Makefile:46: recipe for target 'sub-src-make_first' failed
                make[1]: *** [sub-src-make_first] Error 2
                make[1]: Leaving directory '/home/pi/build-qt/qtbase'
                Makefile:79: recipe for target 'module-qtbase-make_first' failed
                make: *** [module-qtbase-make_first] Error 2
                

                Anyone know why this won't "make" ?

                Thank you,

                -Mark

                A 1 Reply Last reply
                0
                • msluserM msluser

                  Hi,

                  I am trying to build QT from source to run on a RPi 3.

                  I tried to setup a cross compile tool chain but was unsuccessful because I had to first build a cross compile tool chain from source as I am on MacOS and I couldn't use the prebuild linaro gcc tool chains found at https://www.linaro.org/downloads/.

                  I tried to build my own tool chain using instructions and scripts found at
                  https://clxdev.wordpress.com/2016/06/20/building-linaro-toolchains-on-os-x/ but it was for older linaro releases.

                  I was going to download the linaro source from http://releases.linaro.org/components/toolchain/binaries/latest/ But I couldn't determine which one applied to the Raspberry Pi.

                  Jared Wolff created a precompiled toolchain for Raspberry Pi 3 on OsX Mavericks that is found at https://www.jaredwolff.com/toolchains/. I will give that a try soon.
                  See https://www.jaredwolff.com/blog/cross-compiling-on-mac-osx-for-raspberry-pi/

                  In the meantime I am trying to build QT from source right on the RPi 3 itself.

                  I tried to follow the instructions at https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi

                  My environment is

                  • QT 5.8.0 from http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz
                  • Raspberry Pi 3
                  • Raspbian Jessie (2017-03-02)
                  • PiTouch screen

                  From folder ~/build-qt, my I executed

                  ../qt-everywhere-opensource-src-5.8.0/configure -v -opengl es2  -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/urs/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -sysroot / -prefix /opt/Qt5.8 2>&1 | tee output.log
                  

                  Part of what the terminal displayed was ...

                  Configure summary:
                  
                  Building on:  arm
                  Building for: arm
                  Configuration: cross_compile compile_examples enable_new_dtags largefile neon precompile_header shared rpath accessibility release c++11 c++14 concurrent dbus mremap reduce_exports release_tools stl
                  Build options:
                    Mode ................................... release; optimized tools
                    Building shared libraries .............. yes
                    Using C++ standard ..................... C++14
                    Using gold linker ...................... no
                    Using new DTAGS ........................ yes
                    Using precompiled headers .............. yes
                    Using LTCG ............................. no
                    Target compiler supports:
                      NEON ................................. yes
                    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 Widgets ............................. 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
                    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 .................................. yes
                    OCI (Oracle) ........................... no
                    ODBC ................................... no
                    PostgreSQL ............................. yes
                    SQLite2 ................................ yes
                    SQLite ................................. yes
                      Using system provided SQLite ......... no
                    TDS (Sybase) ........................... yes
                  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 ....................... no
                      OpenGL ES 2.0 ........................ yes
                      OpenGL ES 3.0 ........................ no
                      OpenGL ES 3.1 ........................ no
                    Session Management ..................... yes
                  Features used by QPA backends:
                    evdev .................................. yes
                    libinput ............................... no
                    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 ............................ no
                      EGLFS Mali ........................... no
                      EGLFS Rasberry Pi .................... yes
                      EGL on X11 ........................... no
                    LinuxFB ................................ yes
                    Mir client ............................. no
                    X11:
                      Using system provided XCB libraries .. yes
                      EGL on X11 ........................... no
                      Xinput2 .............................. yes
                      XCB XKB .............................. no
                      XLib ................................. yes
                      Xrender .............................. 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 Drivers:
                    EGL .................................... no
                    Rasberry Pi ............................ yes
                    XComposite EGL ......................... no
                    XComposite GLX ......................... no
                    DRM EGL ................................ no
                    libhybris EGL .......................... no
                  Qt Wayland Client ........................ yes
                  Qt Wayland Compositor .................... yes
                  Qt Bluetooth:
                    BlueZ .................................. yes
                    BlueZ Low Energy ....................... yes
                    Linux Crypto API ....................... yes
                  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 Sensors:
                    sensorfw ............................... no
                  Qt WebEngine:
                    Proprietary Codecs ..................... no
                    Spellchecker ........................... yes
                    ALSA ................................... yes
                    PulseAudio ............................. yes
                  
                  Note: PKG_CONFIG_LIBDIR automatically set to //usr/lib/pkgconfig://usr/share/pkgconfig://usr/lib/arm-linux-gnueabihf/pkgconfig
                  
                  Note: PKG_CONFIG_SYSROOT_DIR automatically set to /
                  
                  Note: -optimized-tools is not useful in -release mode.
                  
                  Note: Dropped compiler flags '-pthread' when detecting library 'glib'.
                  
                  Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
                  
                  Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer'.
                  
                  Note: Dropped compiler flags '-pthread' when detecting library 'gstreamer_app'.
                  
                  
                  Platform notes:
                  
                              - Also available for Linux: linux-clang linux-kcc linux-icc linux-cxx
                          
                  
                  Qt is now configured for building. Just run 'make'.
                  Once everything is built, you must run 'make install'.
                  Qt will be installed into /opt/Qt5.8
                  
                  Prior to reconfiguration, make sure you remove any leftovers from
                  the previous build.
                  

                  I executed

                  make -j4 2>&1 | tee output_make.log
                  

                  End of what terminal displayed ...

                  /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -shared -o libqsqlite.so .obj/qsql_sqlite.o .obj/smain.o .obj/sqlite3.o .obj/moc_qsql_sqlite_p.o  -L/home/pi/build-qt/qtbase/lib -lQt5Sql -lQt5Core -lpthread  
                  mv -f libqsqlite.so ../../../../plugins/sqldrivers/ 
                  make[5]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/sqldrivers/sqlite'
                  make[4]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/sqldrivers'
                  make[3]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins'
                  Makefile:721: recipe for target 'sub-plugins-make_first' failed
                  make[2]: *** [sub-plugins-make_first] Error 2
                  make[2]: Leaving directory '/home/pi/build-qt/qtbase/src'
                  Makefile:46: recipe for target 'sub-src-make_first' failed
                  make[1]: *** [sub-src-make_first] Error 2
                  make[1]: Leaving directory '/home/pi/build-qt/qtbase'
                  Makefile:79: recipe for target 'module-qtbase-make_first' failed
                  make: *** [module-qtbase-make_first] Error 2
                  

                  Anyone know why this won't "make" ?

                  Thank you,

                  -Mark

                  A Offline
                  A Offline
                  ambershark
                  wrote on last edited by
                  #11

                  @msluser said in Has anyone successfully built Qt from source recently on a Pi?:

                  CROSS_COMPILE=/urs/bin/

                  That is probably an issue.. should be /usr/bin.

                  Also you normally want to start new threads and not necro an old one like this. :)

                  And finally, you cut the build log so it doesn't show any errors. If you should the actual errors I can try to help you more.

                  My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                  1 Reply Last reply
                  0
                  • msluserM Offline
                    msluserM Offline
                    msluser
                    wrote on last edited by
                    #12

                    @ambershark

                    I made a mistake posting what I typed. I checked and I used
                    CROSS_COMPILE=/usr/bin/

                    There were no errors in the configure step.

                    I noticed this in the output of my make step:

                    /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -shared -o libqoffscreen.so .obj/main.o .obj/qoffscreenintegration.o .obj/qoffscreenwindow.o .obj/qoffscreencommon.o .obj/qoffscreenintegration_dummy.o  -L=/opt/vc/lib -L/home/pi/build-qt/qtbase/lib -lQt5EventDispatcherSupport -Wl,-rpath-link,//opt/vc/lib -lgthread-2.0 -lglib-2.0 -lQt5FontDatabaseSupport -Wl,-rpath-link,//opt/vc/lib -lQt5Gui -lQt5Core -Wl,-rpath-link,//opt/vc/lib -lGLESv2 -lpthread -lfontconfig -lfreetype  
                    /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforminputcontexts/ibus -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I../../../../include/QtGui/5.8.0 -I../../../../include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I../../../../include -I../../../../include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtDBus -I../../../../include/QtDBus -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/moc_qibusproxy.o .moc/moc_qibusproxy.cpp
                    mv -f libqoffscreen.so ../../../../plugins/platforms/ 
                    make[5]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/platforms/offscreen'
                    cd xcb/ && ( test -e Makefile || /home/pi/build-qt/qtbase/bin/qmake -o Makefile /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/xcb.pro -qtconf /home/pi/build-qt/qtbase/bin/qt.conf -- -v -opengl es2 -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -no-use-gold-linker -sysroot / -prefix /opt/Qt5.8 ) && make -f Makefile 
                    make[5]: Entering directory '/home/pi/build-qt/qtbase/src/plugins/platforms/xcb'
                    ( test -e Makefile.xcb_qpa_lib || /home/pi/build-qt/qtbase/bin/qmake -o Makefile.xcb_qpa_lib /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/xcb_qpa_lib.pro -qtconf /home/pi/build-qt/qtbase/bin/qt.conf -- -v -opengl es2 -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -no-use-gold-linker -sysroot / -prefix /opt/Qt5.8 ) && make -f Makefile.xcb_qpa_lib 
                    /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/sqldrivers/tds -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql/5.8.0/QtSql -I../../../../include/QtSql/5.8.0 -I../../../../include/QtSql/5.8.0/QtSql -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql -I../../../../include -I../../../../include/QtSql -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/moc_qsql_tds_p.o .moc/moc_qsql_tds_p.cpp
                    make[6]: Entering directory '/home/pi/build-qt/qtbase/src/plugins/platforms/xcb'
                    /usr/bin/g++ -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -dM -E -o .moc/moc_predefs.h /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/features/data/dummy.cpp
                    /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_FOREACH -DQT_BUILD_XCB_PLUGIN -DXCB_USE_XLIB -DXCB_USE_XINPUT2 -DXCB_USE_RENDER -DDFLT_XKB_CONFIG_ROOT=\"/usr/share/X11/xkb\" -DDEFAULT_XKB_RULES=\"evdev\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_LAYOUT=\"us\" -DQT_BUILD_XCB_QPA_LIB_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_SERVICE_SUPPORT_LIB -DQT_THEME_SUPPORT_LIB -DQT_EVENTDISPATCHER_SUPPORT_LIB -DQT_FONTDATABASE_SUPPORT_LIB -DQT_LINUXACCESSIBILITY_SUPPORT_LIB -DQT_ACCESSIBILITY_SUPPORT_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/gl_integrations -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/xkbcommon -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/src -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/src/xkbcomp -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport/5.8.0/QtServiceSupport -I../../../../include -I../../../../include/QtServiceSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport/5.8.0/QtThemeSupport -I../../../../include/QtThemeSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport/5.8.0/QtEventDispatcherSupport -I../../../../include/QtEventDispatcherSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport/5.8.0/QtFontDatabaseSupport -I../../../../include/QtFontDatabaseSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport/5.8.0/QtLinuxAccessibilitySupport -I../../../../include/QtLinuxAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport/5.8.0/QtAccessibilitySupport -I../../../../include/QtAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I../../../../include/QtGui/5.8.0 -I../../../../include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I../../../../include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtDBus -I../../../../include/QtDBus -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/qxcbconnection.o /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp
                    In file included from /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:46:0:
                    /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbscreen.h:49:26: fatal error: xcb/xinerama.h: No such file or directory
                     #include <xcb/xinerama.h>
                                              ^
                    compilation terminated.
                    
                    
                    

                    Thank you,

                    -Mark

                    A 1 Reply Last reply
                    0
                    • msluserM msluser

                      @ambershark

                      I made a mistake posting what I typed. I checked and I used
                      CROSS_COMPILE=/usr/bin/

                      There were no errors in the configure step.

                      I noticed this in the output of my make step:

                      /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -shared -o libqoffscreen.so .obj/main.o .obj/qoffscreenintegration.o .obj/qoffscreenwindow.o .obj/qoffscreencommon.o .obj/qoffscreenintegration_dummy.o  -L=/opt/vc/lib -L/home/pi/build-qt/qtbase/lib -lQt5EventDispatcherSupport -Wl,-rpath-link,//opt/vc/lib -lgthread-2.0 -lglib-2.0 -lQt5FontDatabaseSupport -Wl,-rpath-link,//opt/vc/lib -lQt5Gui -lQt5Core -Wl,-rpath-link,//opt/vc/lib -lGLESv2 -lpthread -lfontconfig -lfreetype  
                      /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforminputcontexts/ibus -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I../../../../include/QtGui/5.8.0 -I../../../../include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I../../../../include -I../../../../include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtDBus -I../../../../include/QtDBus -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/moc_qibusproxy.o .moc/moc_qibusproxy.cpp
                      mv -f libqoffscreen.so ../../../../plugins/platforms/ 
                      make[5]: Leaving directory '/home/pi/build-qt/qtbase/src/plugins/platforms/offscreen'
                      cd xcb/ && ( test -e Makefile || /home/pi/build-qt/qtbase/bin/qmake -o Makefile /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/xcb.pro -qtconf /home/pi/build-qt/qtbase/bin/qt.conf -- -v -opengl es2 -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -no-use-gold-linker -sysroot / -prefix /opt/Qt5.8 ) && make -f Makefile 
                      make[5]: Entering directory '/home/pi/build-qt/qtbase/src/plugins/platforms/xcb'
                      ( test -e Makefile.xcb_qpa_lib || /home/pi/build-qt/qtbase/bin/qmake -o Makefile.xcb_qpa_lib /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/xcb_qpa_lib.pro -qtconf /home/pi/build-qt/qtbase/bin/qt.conf -- -v -opengl es2 -eglfs -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -no-use-gold-linker -sysroot / -prefix /opt/Qt5.8 ) && make -f Makefile.xcb_qpa_lib 
                      /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/sqldrivers/tds -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql/5.8.0/QtSql -I../../../../include/QtSql/5.8.0 -I../../../../include/QtSql/5.8.0/QtSql -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtSql -I../../../../include -I../../../../include/QtSql -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/moc_qsql_tds_p.o .moc/moc_qsql_tds_p.cpp
                      make[6]: Entering directory '/home/pi/build-qt/qtbase/src/plugins/platforms/xcb'
                      /usr/bin/g++ -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -dM -E -o .moc/moc_predefs.h /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/features/data/dummy.cpp
                      /usr/bin/g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_FOREACH -DQT_BUILD_XCB_PLUGIN -DXCB_USE_XLIB -DXCB_USE_XINPUT2 -DXCB_USE_RENDER -DDFLT_XKB_CONFIG_ROOT=\"/usr/share/X11/xkb\" -DDEFAULT_XKB_RULES=\"evdev\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_LAYOUT=\"us\" -DQT_BUILD_XCB_QPA_LIB_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_SERVICE_SUPPORT_LIB -DQT_THEME_SUPPORT_LIB -DQT_EVENTDISPATCHER_SUPPORT_LIB -DQT_FONTDATABASE_SUPPORT_LIB -DQT_LINUXACCESSIBILITY_SUPPORT_LIB -DQT_ACCESSIBILITY_SUPPORT_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/gl_integrations -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/xkbcommon -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/src -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/3rdparty/xkbcommon/src/xkbcomp -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtServiceSupport/5.8.0/QtServiceSupport -I../../../../include -I../../../../include/QtServiceSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtThemeSupport/5.8.0/QtThemeSupport -I../../../../include/QtThemeSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtEventDispatcherSupport/5.8.0/QtEventDispatcherSupport -I../../../../include/QtEventDispatcherSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtFontDatabaseSupport/5.8.0/QtFontDatabaseSupport -I../../../../include/QtFontDatabaseSupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtLinuxAccessibilitySupport/5.8.0/QtLinuxAccessibilitySupport -I../../../../include/QtLinuxAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtAccessibilitySupport/5.8.0/QtAccessibilitySupport -I../../../../include/QtAccessibilitySupport -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I../../../../include/QtGui/5.8.0 -I../../../../include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I../../../../include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I../../../../include/QtCore/5.8.0 -I../../../../include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtDBus -I../../../../include/QtDBus -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I../../../../include/QtCore -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/qxcbconnection.o /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp
                      In file included from /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:46:0:
                      /home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbscreen.h:49:26: fatal error: xcb/xinerama.h: No such file or directory
                       #include <xcb/xinerama.h>
                                                ^
                      compilation terminated.
                      
                      
                      

                      Thank you,

                      -Mark

                      A Offline
                      A Offline
                      ambershark
                      wrote on last edited by
                      #13

                      @msluser Ah, do you have the libxcb package installed for the PI? Trying search your PI filesystem for xinerama.h and see if it is installed. You may just need to point your compile at that include directory.

                      Or (and the more likely scenario), you don't have libxcb installed for the PI.

                      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                      1 Reply Last reply
                      0
                      • msluserM Offline
                        msluserM Offline
                        msluser
                        wrote on last edited by
                        #14

                        @ambershark
                        Thanks for the help!

                        I got past the xinerama.h error, but now I get

                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::newConnection()@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::QTcpServer(QObject*)@Qt_5'
                        //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::close()@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QHostAddress::~QHostAddress()@Qt_5'
                        //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `qIsEffectiveTLD(QString const&)'
                        //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `QNonContiguousByteDevice::disableReset()'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::connected()@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerName() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::state() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::staticMetaObject@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::isListening() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerAddress() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::disconnected()@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::errorString() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpSocket::QTcpSocket(QObject*)@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QHostAddress::QHostAddress(QString const&)@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerPort() const@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::staticMetaObject@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5'
                        /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `operator<<(QDebug, QHostAddress const&)@Qt_5'
                        collect2: error: ld returned 1 exit status
                        Makefile:80: recipe for target '../../../bin/canbusutil' failed
                        make[4]: *** [../../../bin/canbusutil] Error 1
                        make[4]: Leaving directory '/home/pi/build-qt/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/pi/build-qt/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/pi/build-qt/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/pi/build-qt/qtserialbus'
                        Makefile:229: recipe for target 'module-qtserialbus-make_first' failed
                        make: *** [module-qtserialbus-make_first] Error 2
                        make: *** Waiting for unfinished jobs....
                        

                        Any ideas how to troubleshoot this one ?

                        -Mark

                        A 1 Reply Last reply
                        0
                        • msluserM msluser

                          @ambershark
                          Thanks for the help!

                          I got past the xinerama.h error, but now I get

                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::newConnection()@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::QTcpServer(QObject*)@Qt_5'
                          //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::close()@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QHostAddress::~QHostAddress()@Qt_5'
                          //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `qIsEffectiveTLD(QString const&)'
                          //usr/lib/arm-linux-gnueabihf/libQt5Network.so.5: undefined reference to `QNonContiguousByteDevice::disableReset()'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::connected()@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerName() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::state() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::staticMetaObject@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::isListening() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerAddress() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::disconnected()@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::errorString() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpSocket::QTcpSocket(QObject*)@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QHostAddress::QHostAddress(QString const&)@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QAbstractSocket::peerPort() const@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::staticMetaObject@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5'
                          /home/pi/build-qt/qtserialbus/lib/libQt5SerialBus.so: undefined reference to `operator<<(QDebug, QHostAddress const&)@Qt_5'
                          collect2: error: ld returned 1 exit status
                          Makefile:80: recipe for target '../../../bin/canbusutil' failed
                          make[4]: *** [../../../bin/canbusutil] Error 1
                          make[4]: Leaving directory '/home/pi/build-qt/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/pi/build-qt/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/pi/build-qt/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/pi/build-qt/qtserialbus'
                          Makefile:229: recipe for target 'module-qtserialbus-make_first' failed
                          make: *** [module-qtserialbus-make_first] Error 2
                          make: *** Waiting for unfinished jobs....
                          

                          Any ideas how to troubleshoot this one ?

                          -Mark

                          A Offline
                          A Offline
                          ambershark
                          wrote on last edited by ambershark
                          #15

                          @msluser Lol scroll up... that problem was addressed in this thread already. ;)

                          My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                          1 Reply Last reply
                          0
                          • msluserM Offline
                            msluserM Offline
                            msluser
                            wrote on last edited by
                            #16

                            @ambershark

                            Thank you for all of your help this far. As per your last recommendation, I executed

                            sudo apt-get uninstall libqt5*
                            

                            I was able to get the "make" to run however the last thing it output was

                            /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../../../lib -shared -o libqtlabsplatformplugin.so .obj/qtlabsplatformplugin.o .obj/qquickplatformcolordialog.o .obj/qquickplatformdialog.o .obj/qquickplatformfiledialog.o .obj/qquickplatformfolderdialog.o .obj/qquickplatformfontdialog.o .obj/qquickplatformiconloader.o .obj/qquickplatformmenu.o .obj/qquickplatformmenubar.o .obj/qquickplatformmenuitem.o .obj/qquickplatformmenuitemgroup.o .obj/qquickplatformmenuseparator.o .obj/qquickplatformmessagedialog.o .obj/qquickplatformstandardpaths.o .obj/qquickplatformsystemtrayicon.o .obj/qwidgetplatformcolordialog.o .obj/qwidgetplatformdialog.o .obj/qwidgetplatformfiledialog.o .obj/qwidgetplatformfontdialog.o .obj/qwidgetplatformmenu.o .obj/qwidgetplatformmenuitem.o .obj/qwidgetplatformmessagedialog.o .obj/qwidgetplatformsystemtrayicon.o .obj/moc_qquickplatformcolordialog_p.o .obj/moc_qquickplatformdialog_p.o .obj/moc_qquickplatformfiledialog_p.o .obj/moc_qquickplatformfolderdialog_p.o .obj/moc_qquickplatformfontdialog_p.o .obj/moc_qquickplatformmenu_p.o .obj/moc_qquickplatformmenubar_p.o .obj/moc_qquickplatformmenuitem_p.o .obj/moc_qquickplatformmenuitemgroup_p.o .obj/moc_qquickplatformmenuseparator_p.o .obj/moc_qquickplatformmessagedialog_p.o .obj/moc_qquickplatformstandardpaths_p.o .obj/moc_qquickplatformsystemtrayicon_p.o .obj/moc_qwidgetplatformcolordialog_p.o .obj/moc_qwidgetplatformfiledialog_p.o .obj/moc_qwidgetplatformfontdialog_p.o .obj/moc_qwidgetplatformmenu_p.o .obj/moc_qwidgetplatformmenuitem_p.o .obj/moc_qwidgetplatformmessagedialog_p.o .obj/moc_qwidgetplatformsystemtrayicon_p.o  -L=/opt/vc/lib -L/home/pi/build-qt/qtdeclarative/lib -lQt5Quick -L/home/pi/build-qt/qtbase/lib -lQt5Widgets -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -Wl,-rpath-link,//opt/vc/lib -lGLESv2 -lpthread -lQt5Quick -L=/opt/vc/lib -L/home/pi/build-qt/qtbase/lib -L/home/pi/build-qt/qtdeclarative/lib -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lpthread 
                            mv -f libqtlabsplatformplugin.so ../../../qml/Qt/labs/platform/ 
                            make[4]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src/imports/platform'
                            make[3]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src/imports'
                            make[2]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src'
                            make[1]: Leaving directory '/home/pi/build-qt/qtquickcontrols2'
                            

                            I am not sure that "make" was successful. What do you think?

                            When I try and run

                            make install
                            

                            This is the last part of the output

                            make[3]: Entering directory '/home/pi/build-qt/qt3d/src/render'
                            /usr/bin/g++ -c -include .pch/Qt53DRender -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_FOREACH -DQT_BUILD_3DRENDER_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_3DCORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_OPENGLEXTENSIONS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/backend -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/geometry -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/graphicshelpers -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/framegraph -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/frontend -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/jobs -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/lights -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/materialsystem -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/renderstates -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/io -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/picking -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/raycasting -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/services -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/texture -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender -I../../include -I../../include/Qt3DRender -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender/5.8.0/Qt3DRender -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore/5.8.0/Qt3DCore -I../../include/Qt3DCore/5.8.0 -I../../include/Qt3DCore/5.8.0/Qt3DCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I/home/pi/build-qt/qtbase/include/QtGui/5.8.0 -I/home/pi/build-qt/qtbase/include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I/home/pi/build-qt/qtbase/include/QtCore/5.8.0 -I/home/pi/build-qt/qtbase/include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore -I../../include/Qt3DCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I/home/pi/build-qt/qtbase/include -I/home/pi/build-qt/qtbase/include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtNetwork -I/home/pi/build-qt/qtbase/include/QtNetwork -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I/home/pi/build-qt/qtbase/include/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtOpenGLExtensions -I/home/pi/build-qt/qtbase/include/QtOpenGLExtensions -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtConcurrent -I/home/pi/build-qt/qtbase/include/QtConcurrent -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/renderthread.o /home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/backend/renderthread.cpp
                            In file included from <command-line>:0:0:
                            /usr/include/stdc-predef.h:59:1: error: one or more PCH files were found, but they were invalid
                             #endif
                             ^
                            /usr/include/stdc-predef.h:59:1: error: use -Winvalid-pch for more information
                            /usr/include/stdc-predef.h:59:1: fatal error: .pch/Qt53DRender: No such file or directory
                            compilation terminated.
                            Makefile:16610: recipe for target '.obj/renderthread.o' failed
                            make[3]: *** [.obj/renderthread.o] Error 1
                            make[3]: Leaving directory '/home/pi/build-qt/qt3d/src/render'
                            Makefile:95: recipe for target 'sub-render-install_subtargets' failed
                            make[2]: *** [sub-render-install_subtargets] Error 2
                            make[2]: Leaving directory '/home/pi/build-qt/qt3d/src'
                            Makefile:57: recipe for target 'sub-src-install_subtargets' failed
                            make[1]: *** [sub-src-install_subtargets] Error 2
                            make[1]: Leaving directory '/home/pi/build-qt/qt3d'
                            Makefile:448: recipe for target 'module-qt3d-install_subtargets' failed
                            make: *** [module-qt3d-install_subtargets] Error 2
                            

                            Obviously it didn't install correctly and there is an error. Is it because of my file /usr/include/stdc-predef.h or something else ?

                            I appreciate your help @ambershark , thank you very much.

                            -Mark

                            A 1 Reply Last reply
                            0
                            • msluserM msluser

                              @ambershark

                              Thank you for all of your help this far. As per your last recommendation, I executed

                              sudo apt-get uninstall libqt5*
                              

                              I was able to get the "make" to run however the last thing it output was

                              /usr/bin/g++ -Wl,-rpath-link,//opt/vc/lib -Wl,-rpath-link,//usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,//lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/ -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../../../lib -shared -o libqtlabsplatformplugin.so .obj/qtlabsplatformplugin.o .obj/qquickplatformcolordialog.o .obj/qquickplatformdialog.o .obj/qquickplatformfiledialog.o .obj/qquickplatformfolderdialog.o .obj/qquickplatformfontdialog.o .obj/qquickplatformiconloader.o .obj/qquickplatformmenu.o .obj/qquickplatformmenubar.o .obj/qquickplatformmenuitem.o .obj/qquickplatformmenuitemgroup.o .obj/qquickplatformmenuseparator.o .obj/qquickplatformmessagedialog.o .obj/qquickplatformstandardpaths.o .obj/qquickplatformsystemtrayicon.o .obj/qwidgetplatformcolordialog.o .obj/qwidgetplatformdialog.o .obj/qwidgetplatformfiledialog.o .obj/qwidgetplatformfontdialog.o .obj/qwidgetplatformmenu.o .obj/qwidgetplatformmenuitem.o .obj/qwidgetplatformmessagedialog.o .obj/qwidgetplatformsystemtrayicon.o .obj/moc_qquickplatformcolordialog_p.o .obj/moc_qquickplatformdialog_p.o .obj/moc_qquickplatformfiledialog_p.o .obj/moc_qquickplatformfolderdialog_p.o .obj/moc_qquickplatformfontdialog_p.o .obj/moc_qquickplatformmenu_p.o .obj/moc_qquickplatformmenubar_p.o .obj/moc_qquickplatformmenuitem_p.o .obj/moc_qquickplatformmenuitemgroup_p.o .obj/moc_qquickplatformmenuseparator_p.o .obj/moc_qquickplatformmessagedialog_p.o .obj/moc_qquickplatformstandardpaths_p.o .obj/moc_qquickplatformsystemtrayicon_p.o .obj/moc_qwidgetplatformcolordialog_p.o .obj/moc_qwidgetplatformfiledialog_p.o .obj/moc_qwidgetplatformfontdialog_p.o .obj/moc_qwidgetplatformmenu_p.o .obj/moc_qwidgetplatformmenuitem_p.o .obj/moc_qwidgetplatformmessagedialog_p.o .obj/moc_qwidgetplatformsystemtrayicon_p.o  -L=/opt/vc/lib -L/home/pi/build-qt/qtdeclarative/lib -lQt5Quick -L/home/pi/build-qt/qtbase/lib -lQt5Widgets -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -Wl,-rpath-link,//opt/vc/lib -lGLESv2 -lpthread -lQt5Quick -L=/opt/vc/lib -L/home/pi/build-qt/qtbase/lib -L/home/pi/build-qt/qtdeclarative/lib -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lpthread 
                              mv -f libqtlabsplatformplugin.so ../../../qml/Qt/labs/platform/ 
                              make[4]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src/imports/platform'
                              make[3]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src/imports'
                              make[2]: Leaving directory '/home/pi/build-qt/qtquickcontrols2/src'
                              make[1]: Leaving directory '/home/pi/build-qt/qtquickcontrols2'
                              

                              I am not sure that "make" was successful. What do you think?

                              When I try and run

                              make install
                              

                              This is the last part of the output

                              make[3]: Entering directory '/home/pi/build-qt/qt3d/src/render'
                              /usr/bin/g++ -c -include .pch/Qt53DRender -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/ -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_FOREACH -DQT_BUILD_3DRENDER_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_3DCORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_OPENGLEXTENSIONS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render -I. -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/backend -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/geometry -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/graphicshelpers -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/framegraph -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/frontend -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/jobs -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/lights -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/materialsystem -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/renderstates -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/io -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/picking -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/raycasting -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/services -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/texture -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender -I../../include -I../../include/Qt3DRender -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DRender/5.8.0/Qt3DRender -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore/5.8.0/Qt3DCore -I../../include/Qt3DCore/5.8.0 -I../../include/Qt3DCore/5.8.0/Qt3DCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui/5.8.0/QtGui -I/home/pi/build-qt/qtbase/include/QtGui/5.8.0 -I/home/pi/build-qt/qtbase/include/QtGui/5.8.0/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0 -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore/5.8.0/QtCore -I/home/pi/build-qt/qtbase/include/QtCore/5.8.0 -I/home/pi/build-qt/qtbase/include/QtCore/5.8.0/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/include/Qt3DCore -I../../include/Qt3DCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtGui -I/home/pi/build-qt/qtbase/include -I/home/pi/build-qt/qtbase/include/QtGui -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtNetwork -I/home/pi/build-qt/qtbase/include/QtNetwork -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtCore -I/home/pi/build-qt/qtbase/include/QtCore -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtOpenGLExtensions -I/home/pi/build-qt/qtbase/include/QtOpenGLExtensions -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/include/QtConcurrent -I/home/pi/build-qt/qtbase/include/QtConcurrent -I.moc -I=/opt/vc/include -I=/opt/vc/include/interface/vcos/pthreads -I=/opt/vc/include/interface/vmcs_host/linux -I/home/pi/qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rpi3-g++ -o .obj/renderthread.o /home/pi/qt-everywhere-opensource-src-5.8.0/qt3d/src/render/backend/renderthread.cpp
                              In file included from <command-line>:0:0:
                              /usr/include/stdc-predef.h:59:1: error: one or more PCH files were found, but they were invalid
                               #endif
                               ^
                              /usr/include/stdc-predef.h:59:1: error: use -Winvalid-pch for more information
                              /usr/include/stdc-predef.h:59:1: fatal error: .pch/Qt53DRender: No such file or directory
                              compilation terminated.
                              Makefile:16610: recipe for target '.obj/renderthread.o' failed
                              make[3]: *** [.obj/renderthread.o] Error 1
                              make[3]: Leaving directory '/home/pi/build-qt/qt3d/src/render'
                              Makefile:95: recipe for target 'sub-render-install_subtargets' failed
                              make[2]: *** [sub-render-install_subtargets] Error 2
                              make[2]: Leaving directory '/home/pi/build-qt/qt3d/src'
                              Makefile:57: recipe for target 'sub-src-install_subtargets' failed
                              make[1]: *** [sub-src-install_subtargets] Error 2
                              make[1]: Leaving directory '/home/pi/build-qt/qt3d'
                              Makefile:448: recipe for target 'module-qt3d-install_subtargets' failed
                              make: *** [module-qt3d-install_subtargets] Error 2
                              

                              Obviously it didn't install correctly and there is an error. Is it because of my file /usr/include/stdc-predef.h or something else ?

                              I appreciate your help @ambershark , thank you very much.

                              -Mark

                              A Offline
                              A Offline
                              ambershark
                              wrote on last edited by ambershark
                              #17

                              @msluser That error comes from using a dirty build from mixed Qt's. Since you cleaned up your Qt conflict (you didn't have to uninstall, but that works) you should now rebuild the entire Qt project.

                              I would start with a completely fresh extract of the qt tar so you know it's 100% clean. Sometimes make distclean doesn't get everything.

                              If you rebuild everything it should fix that pch on install. As for whether or not the build succeed that make output is definitely a success, the make install however failed.

                              And you're welcome. :)

                              My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                              vikramgV 1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                JHBR
                                wrote on last edited by JHBR
                                #18

                                I've also struggled a lot with compiling Qt natively on the RPi3. I've tried to compile the new Qt 5.8 in hopes that the fact that it now uses Gstreamer1.0 instead of 0.10 would fix issues I have with an application that uses QSound and QMediaPlayer, both part of the QtMultimedia library.
                                After a lot of trial and error and trailing forums, I have managed to successfully build Qt 5.8 from source.

                                My environment:

                                • Qt 5.8.1 from git://code.qt.io/qt/qt5.git
                                • Raspberry Pi 3
                                • Raspian version 8.0 Jessie
                                • Kernel: 4.4.50-v7+ #970 SMP Mon Feb 20 19:18:29 GMT 2017

                                I wrote a script that automates the process. If you run all its commands, it will install dependencies, clone the source of your choice, init the repo, build the source, install and then create a script that exports the necessarily globals, which is appended to startup scripts.
                                I've pasted the whole script below, where you can see the options used for configure and what dependencies I made sure to install:

                                #!/usr/bin/env bash
                                set -exu
                                
                                ### SETTINGS
                                MAIN_VER="5"
                                VER="5.8"
                                REPO="git://code.qt.io/qt/qt5.git"
                                INST_DIR="/usr/local/qt$VER"
                                CORES="4"
                                B=$(pwd)
                                SETUP="setup_qt"
                                
                                ### REPO INIT OPTIONS
                                INIT_OPT=""
                                INIT_OPT+="--module-subset=default,-qtwebkit,-qtwebkit-examples,-qtwebengine"
                                
                                ### CONFIGURATION OPTIONS
                                CONF_OPT=""
                                CONF_OPT+=" -v"
                                CONF_OPT+=" -opensource"
                                CONF_OPT+=" -confirm-license"
                                CONF_OPT+=" -opengl es2"
                                CONF_OPT+=" -device linux-rpi3-g++"
                                CONF_OPT+=" -device-option CROSS_COMPILE=/usr/bin/"
                                CONF_OPT+=" -sysroot /"
                                CONF_OPT+=" -optimized-qmake"
                                CONF_OPT+=" -reduce-exports"
                                CONF_OPT+=" -release"
                                CONF_OPT+=" -qpa xcb"		# Use xcb as default QPA backend
                                CONF_OPT+=" -qt-pcre"		# Use the PCRE library bundled with Qt.
                                CONF_OPT+=" -qt-libpng"	# Use the libpng bundled with Qt.
                                CONF_OPT+=" -qt-xcb"		# Use xcb- libraries bundled with Qt.
                                CONF_OPT+=" -make libs"	# Only make libraries (no tests, examples etc)
                                CONF_OPT+=" -skip qtserialbus"	# Get error when compiling this package
                                CONF_OPT+=" -skip qtwayland"	# Get error when compiling this package
                                CONF_OPT+=" -skip qtscript"		# Get error when compiling this package
                                CONF_OPT+=" -no-pch" # Some users have reported issues with using precomiled headers
                                CONF_OPT+=" -no-use-gold-linker" # Seems to have issues with ARMv8
                                
                                
                                ### DEPENDENCIES
                                DEPS=""
                                # Build tools
                                DEPS+=" build-essential"
                                DEPS+=" perl"
                                DEPS+=" python"
                                DEPS+=" git"
                                DEPS+=" flex"
                                DEPS+=" ruby"
                                DEPS+=" gperf"
                                DEPS+=" bison"
                                # XCB/X11 support
                                DEPS+=" ^libxcb.*"
                                DEPS+=" libglu1-mesa-dev"
                                DEPS+=" libx11-xcb-dev"
                                DEPS+=" libxrender-dev"
                                DEPS+=" libfontconfig1-dev"
                                DEPS+=" libfreetype6-dev"
                                DEPS+=" libx11-dev"
                                DEPS+=" libxext-dev"
                                DEPS+=" libxfixes-dev"
                                DEPS+=" libxi-dev"
                                DEPS+=" libxcb1-dev"
                                DEPS+=" libxcb-glx0-dev"
                                DEPS+=" libxcb-keysyms1-dev"
                                DEPS+=" libxcb-image0-dev"
                                DEPS+=" libxcb-shm0-dev"
                                DEPS+=" libxcb-icccm4-dev"
                                DEPS+=" libxcb-sync0-dev"
                                DEPS+=" libxcb-xfixes0-dev"
                                DEPS+=" libxcb-shape0-dev"
                                DEPS+=" libxcb-randr0-dev"
                                DEPS+=" libxcb-render-util0-dev"
                                DEPS+=" libx11-xcb1"
                                DEPS+=" libxcb-sync1"
                                DEPS+=" libxcb-sync-dev"
                                DEPS+=" libxcb-xinerama0"
                                DEPS+=" libxcb-xinerama0-dev"
                                DEPS+=" libx11-xcb1"
                                DEPS+=" libxcb-sync1"
                                DEPS+=" libxcb-sync-dev"
                                # Sound support
                                DEPS+=" libasound2-dev"
                                DEPS+=" libpulse-dev"
                                # Media support
                                DEPS+=" libavcodec-dev"
                                DEPS+=" libavformat-dev"
                                DEPS+=" libswscale-dev"
                                DEPS+=" gstreamer-tools"
                                DEPS+=" libgstreamer1.0-dev"
                                DEPS+=" libgstreamer-plugins-base1.0-dev"
                                DEPS+=" gstreamer1.0-plugins-good"
                                DEPS+=" gstreamer1.0-plugins-bad"
                                DEPS+=" gstreamer1.0-plugins-ugly"
                                DEPS+=" gstreamer1.0-libav"
                                DEPS+=" gstreamer1.0-clutter"
                                DEPS+=" gstreamer1.0-fluendo-mp3"
                                DEPS+=" gstreamer1.0-pulseaudio"
                                #DEPS+=" libgstreamer0.10-dev" # Not needed for Qt 5.8 and later
                                #DEPS+=" libgstreamer-plugins-base0.10-dev"
                                #DEPS+=" gstreamer0.10-plugins-good"
                                #DEPS+=" gstreamer0.10-plugins-bad"
                                #DEPS+=" gstreamer0.10-plugins-ugly"
                                # XKB fixes for Qt5.4x
                                DEPS+=" libxkbfile1"
                                DEPS+=" x11-xkb-utils"
                                DEPS+=" xkb-data"
                                DEPS+=" libxkbfile-dev"
                                # SQLite 3 support
                                DEPS+=" libsqlite0-dev"
                                DEPS+=" libsqlite3-dev"
                                # SSL/TLS Support
                                DEPS+=" libssl-dev"
                                DEPS+=" gnutls-dev"
                                DEPS+=" libgnutls28-dev"
                                #	DEPS+=" libgnutls-openssl-dev" # Not available on debian
                                DEPS+=" libsslcommon2-dev"
                                # OpenCV support (for bottle rig)
                                DEPS+=" libopencv-calib3d-dev"
                                DEPS+=" libopencv-contrib-dev"
                                DEPS+=" libopencv-core-dev"
                                DEPS+=" libopencv-dev"
                                DEPS+=" libopencv-features2d-dev"
                                DEPS+=" libopencv-flann-dev"
                                DEPS+=" libopencv-gpu-dev"
                                DEPS+=" libopencv-highgui-dev"
                                DEPS+=" libopencv-imgproc-dev"
                                DEPS+=" libopencv-legacy-dev"
                                DEPS+=" libopencv-ml-dev"
                                DEPS+=" libopencv-objdetect-dev"
                                DEPS+=" libopencv-video-dev"
                                # Other
                                DEPS+=" libdrm-dev" # Kernel DRM services
                                DEPS+=" libgst-dev" # Smalltalk virtual machine
                                DEPS+=" libjpeg62-turbo-dev" # JPEG
                                DEPS+=" libpng12-dev" # PNG
                                DEPS+=" firebird-dev" # Firebird
                                DEPS+=" libmysqlclient-dev" # MySQL
                                DEPS+=" libiodbc2-dev" # iODBC
                                DEPS+=" libpq-dev" # PostgreSQL
                                DEPS+=" freetds-dev" # Tabular DataStream
                                DEPS+=" libcups2-dev" # Common UNIX Printing System
                                DEPS+=" libglib2.0-dev" # GLib
                                DEPS+=" libraspberrypi-dev" # EGL/GLES/OpenVG/etc. libraries for the Raspberry Pi's VideoCore IV
                                DEPS+=" libxslt1-dev" # XML
                                DEPS+=" libicu-dev" # Unicode
                                DEPS+=" libudev-dev" # udev
                                DEPS+=" libdbus-1-dev" # D-Bus
                                
                                do_prep(){
                                	# Install depedencies
                                	echo "-------------------- Installing depedencies"
                                	sudo apt-get update
                                	sudo apt-get install -y $DEPS 2>&1 | tee deps.out
                                }
                                
                                do_clone(){
                                	# Clone repo
                                	echo "-------------------- Cloning repo: qt$VER"
                                	git clone $REPO
                                	cd "$B/qt$MAIN_VER"
                                	git checkout $VER
                                }
                                
                                do_init(){
                                	# Initialize repo
                                	cd "$B/qt$MAIN_VER"
                                	echo "-------------------- Initializing repository"
                                	./init-repository $INIT_OPT 2>&1 | tee init.out
                                }
                                
                                do_conf(){
                                	# Configure build
                                	cd "$B/qt$MAIN_VER"
                                	echo "-------------------- Configuring build"
                                	MAKEFLAGS=-j$CORES ./configure $CONF_OPT -prefix $INST_DIR 2>&1 | tee config.out
                                }
                                
                                do_build(){
                                	# Build
                                	cd "$B/qt$MAIN_VER"
                                	echo "-------------------- Building qt$VER"
                                	make -j$CORES 2>&1 | tee make.out
                                }
                                
                                do_install(){
                                	# Install
                                	cd "$B/qt$MAIN_VER"
                                	echo "-------------------- Installing in $INST_DIR"
                                	sudo make install -j$CORES 2>&1 | tee install.out
                                }
                                
                                do_exports(){
                                	# Make startup script so export symbols
                                	cd $B
                                	> $SETUP.sh
                                	echo "export LD_LIBRARY_PATH=$INST_DIR/lib" >> $SETUP.sh
                                	echo "export PATH=$INST_DIR/bin:\$PATH" >> $SETUP.sh
                                	echo "export QT_QPA_EGLFS_PHYSICAL_WIDTH=510" >> $SETUP.sh
                                	echo "export QT_QPA_EGLFS_PHYSICAL_HEIGHT=290" >> $SETUP.sh
                                
                                	# Make the script executable and run it
                                	chmod +x $SETUP.sh
                                	./$SETUP.sh
                                
                                	# Append source to setup script in startup scripts
                                	echo "source $B/$SETUP.sh" >> ~/.profile
                                	echo "source $B/$SETUP.sh" >> ~/.bashrc
                                }
                                
                                while [ "${1+defined}" ];
                                do
                                	case $1 in
                                		prep* )    do_prep    ;;
                                		clone* )   do_clone   ;;
                                		init* )    do_init    ;;
                                		conf* )    do_conf    ;;
                                		build* )   do_build   ;;
                                		install* ) do_install ;;
                                		exports* ) do_exports ;;
                                		*) echo "UNKNOWN COMMAND: '$1', SKIPPING..."	;;
                                	esac
                                	shift
                                done
                                
                                
                                echo "DONE"
                                
                                

                                Note that I omit initializing QtWebkit in the repo to save time compiling as I didn't need it. I also skip compiling three libraries which would cause errors and prevent the remaining libraries from being compiled:

                                • QtSerialbus
                                • QtWayland
                                • QtScript

                                The source is downloaded and placed in a subdirectory where the script is run from (it can be run from anywhere you like).
                                The script also writes the output of each process to a set of "<name>.out" files, most of which are placed in the source directory.
                                To run the commands in the script, simply call it followed by the commands you want. E.g. if you name the script "qtFromGit.sh":

                                $ <pathToScript>/qtFromGit.sh clone init conf build install exports
                                

                                Edit:
                                Running the whole process on my Pi took right above 5 hours, using all 4 cores:

                                real    303m23.636s
                                user    1087m58.200s
                                sys     47m28.890s
                                

                                Edit2: Grammar

                                Of course, I'm still having issues with sound in my application, but that's another story fit for a separate thread...

                                1 Reply Last reply
                                1
                                • A ambershark

                                  @msluser That error comes from using a dirty build from mixed Qt's. Since you cleaned up your Qt conflict (you didn't have to uninstall, but that works) you should now rebuild the entire Qt project.

                                  I would start with a completely fresh extract of the qt tar so you know it's 100% clean. Sometimes make distclean doesn't get everything.

                                  If you rebuild everything it should fix that pch on install. As for whether or not the build succeed that make output is definitely a success, the make install however failed.

                                  And you're welcome. :)

                                  vikramgV Offline
                                  vikramgV Offline
                                  vikramg
                                  wrote on last edited by
                                  #19

                                  @ambershark The "undefined reference" link error was root-caused to the conflict with existing Qt 5.3.2 on the build machine. That has been resolved by folks in this thread by removing the older version, but you suggested that that need not be done. Would you elaborate on that? How might one avoid the conflict without removing the older conflicting version? Thanks.

                                  A 1 Reply Last reply
                                  0
                                  • vikramgV vikramg

                                    @ambershark The "undefined reference" link error was root-caused to the conflict with existing Qt 5.3.2 on the build machine. That has been resolved by folks in this thread by removing the older version, but you suggested that that need not be done. Would you elaborate on that? How might one avoid the conflict without removing the older conflicting version? Thanks.

                                    A Offline
                                    A Offline
                                    ambershark
                                    wrote on last edited by
                                    #20

                                    @vikramg There are a few ways to do it easily. I'm only covering posix OSes though. I don't use windows enough to comment on how to do it there. I would imagine just making sure it isn't in your path would work in windows though.

                                    1. Make sure you shell points to the Qt you want only. To accomplish this you will need something like:
                                    $ export PATH="/path/to/Qt/bin:$PATH"
                                    $ export QTDIR="/path/to/Qt"
                                    

                                    I tend to add these to my .bashrc so they are always active in every shell I run. I have aliases for switching Qt versions.

                                    To verify that your Qt is the one you want, run qmake --version. Then run qmake -query and verify the paths are pointing correctly. This should be handled by the QTDIR varaible. If not you will need a qt.conf file to force paths.

                                    1. Another way is to disable the system Qt version. This of course will have undesired effects on any application that uses them on your system. The way I usually accomplish this is just setting permissions to 000 on the Qt include directory and libs/binaries individually if necessary. This way is a pain in the butt though. I recommend trying the above first and if you still have issues try this.

                                    2. Finally, you could set up a vagrant/virtualbox build vm that doesn't include Qt as part of the distro. You could use a docker instance as well. This doesn't really hold true to my comment though but it is an option.

                                    Hope that helps.

                                    My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                    vikramgV 1 Reply Last reply
                                    0
                                    • joaopagottoJ Offline
                                      joaopagottoJ Offline
                                      joaopagotto
                                      wrote on last edited by joaopagotto
                                      #21

                                      This work for me.

                                      apt-get install \
                                      bison \
                                      build-essential \
                                      flex \
                                      gperf \
                                      libasound2-dev \
                                      libatkmm-1.6-dev \
                                      libbz2-dev \
                                      libcap-dev \
                                      libcups2-dev \
                                      libdrm-dev \
                                      libegl1-mesa-dev \
                                      libfontconfig1-dev \
                                      libfreetype6-dev \
                                      libgcrypt11-dev \
                                      libglu1-mesa-dev \
                                      libgstreamer-plugins-base0.10-dev \
                                      libgstreamer0.10-dev \
                                      libicu-dev \
                                      libnss3-dev \
                                      libpci-dev \
                                      libpulse-dev \
                                      libssl-dev \
                                      libudev-dev \
                                      libx11-dev \
                                      libx11-xcb-dev \
                                      libxcb-composite0 \
                                      libxcb-composite0-dev \
                                      libxcb-cursor-dev \
                                      libxcb-cursor0 \
                                      libxcb-damage0 \
                                      libxcb-damage0-dev \
                                      libxcb-dpms0 \
                                      libxcb-dpms0-dev \
                                      libxcb-dri2-0 \
                                      libxcb-dri2-0-dev \
                                      libxcb-dri3-0 \
                                      libxcb-dri3-dev \
                                      libxcb-ewmh-dev \
                                      libxcb-ewmh2 \
                                      libxcb-glx0 \
                                      libxcb-glx0-dev \
                                      libxcb-icccm4 \
                                      libxcb-icccm4-dev \
                                      libxcb-image0 \
                                      libxcb-image0-dev \
                                      libxcb-keysyms1 \
                                      libxcb-keysyms1-dev \
                                      libxcb-present-dev \
                                      libxcb-present0 \
                                      libxcb-randr0 \
                                      libxcb-randr0-dev \
                                      libxcb-record0 \
                                      libxcb-record0-dev \
                                      libxcb-render-util0 \
                                      libxcb-render-util0-dev \
                                      libxcb-render0 \
                                      libxcb-render0-dev \
                                      libxcb-res0 \
                                      libxcb-res0-dev \
                                      libxcb-screensaver0 \
                                      libxcb-screensaver0-dev \
                                      libxcb-shape0 \
                                      libxcb-shape0-dev \
                                      libxcb-shm0 \
                                      libxcb-shm0-dev \
                                      libxcb-sync-dev \
                                      libxcb-sync-dev \
                                      libxcb-sync1 \
                                      libxcb-util1 \
                                      libxcb-util-dev \
                                      libxcb-xevie0 \
                                      libxcb-xevie0-dev \
                                      libxcb-xf86dri0 \
                                      libxcb-xf86dri0-dev \
                                      libxcb-xfixes0 \
                                      libxcb-xfixes0-dev \
                                      libxcb-xinerama0 \
                                      libxcb-xinerama0-dev \
                                      libxcb-xkb-dev \
                                      libxcb-xkb1 \
                                      libxcb-xprint0 \
                                      libxcb-xprint0-dev \
                                      libxcb-xtest0 \
                                      libxcb-xtest0-dev \
                                      libxcb-xv0 \
                                      libxcb-xv0-dev \
                                      libxcb-xvmc0 \
                                      libxcb-xvmc0-dev \
                                      libxcb1 \
                                      libxcb1-dev \
                                      libxcomposite-dev \
                                      libxcursor-dev \
                                      libxdamage-dev \
                                      libxext-dev \
                                      libxfixes-dev \
                                      libxi-dev \
                                      libxkbcommon-dev \
                                      libxrandr-dev \
                                      libxrender-dev \
                                      libxslt1-dev \
                                      libxss-dev \
                                      libxtst-dev \
                                      perl \
                                      python \
                                      ruby
                                      
                                      apt-get install \
                                      libpq-dev \
                                      libmysqlclient-dev \
                                      libsqlite3-dev
                                      
                                      cd /usr/local/src
                                      
                                      wget https://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz
                                      
                                      tar -xvzf qt-everywhere-opensource-src-5.8.0.tar.gz
                                      
                                      cd qt-everywhere-opensource-src-5.8.0
                                      
                                      ./configure \
                                      -opensource -confirm-license \
                                      -opengl es2 \
                                      -nomake tools \
                                      -nomake examples \
                                      -nomake tests \
                                      -skip qtwebkit \
                                      -skip qtwebkit-examples
                                      
                                      # -j{4} number of CPU cores
                                      
                                      make -j4
                                      make install
                                      
                                      cd /usr/local
                                      
                                      
                                      1 Reply Last reply
                                      0
                                      • A ambershark

                                        @vikramg There are a few ways to do it easily. I'm only covering posix OSes though. I don't use windows enough to comment on how to do it there. I would imagine just making sure it isn't in your path would work in windows though.

                                        1. Make sure you shell points to the Qt you want only. To accomplish this you will need something like:
                                        $ export PATH="/path/to/Qt/bin:$PATH"
                                        $ export QTDIR="/path/to/Qt"
                                        

                                        I tend to add these to my .bashrc so they are always active in every shell I run. I have aliases for switching Qt versions.

                                        To verify that your Qt is the one you want, run qmake --version. Then run qmake -query and verify the paths are pointing correctly. This should be handled by the QTDIR varaible. If not you will need a qt.conf file to force paths.

                                        1. Another way is to disable the system Qt version. This of course will have undesired effects on any application that uses them on your system. The way I usually accomplish this is just setting permissions to 000 on the Qt include directory and libs/binaries individually if necessary. This way is a pain in the butt though. I recommend trying the above first and if you still have issues try this.

                                        2. Finally, you could set up a vagrant/virtualbox build vm that doesn't include Qt as part of the distro. You could use a docker instance as well. This doesn't really hold true to my comment though but it is an option.

                                        Hope that helps.

                                        vikramgV Offline
                                        vikramgV Offline
                                        vikramg
                                        wrote on last edited by
                                        #22

                                        Thanks @ambershark
                                        I should have specified that my question was for the case of cross-compiling Qt for an RPi-class embedded device. In particular, I am building on an x86-64 PC running Ubuntu 16.04.2, for an aarch64 Odroid C2 also running Ubuntu 16.04.2. After a lot of rooting around, I have discovered that the problem is the following:

                                        One of the places where the "undefined reference" error hits, is for a surprisingly mundane function like QString::resize(), in a link target like libQt5Xml.so:

                                        ~/Projects/ARM/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -shared
                                        -o libQt5Xml.so.5.8.0
                                        -L~/Projects/Odroid/C2/sysroot/usr/lib -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl -L~/Projects/Odroid/C2/Qt/qt5-build/lib 
                                        -lQt5Core -lpthread
                                        

                                        Objects like qstring.o were bundled like so into libQt5Core.so, preceding the above step:

                                        aarch64-linux-gnu-g++ -shared -o libQt5Core.so.5.8.0 ... .obj/qstring.o ...<many other .o objects here>... -L~/Projects/Odroid/C2/sysroot/usr/lib -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl -lpthread -licui18n -licuuc -licudata -lm -ldl -lrt -lz -lpcre16 -lgthread-2.0 -lglib-2.0
                                        

                                        So the make process is building a libQt5Core.so, pulling in required libs (e.g. libicudata.so, libdl.so, librt.so etc) from the target machine from the *lib* directories under sysroot. The newly created libQt5Core.so is located in the qt5-build/lib directory on the host machine.

                                        The problem arises when the linker tries to create a target that requires libQt5Core.so. Repeating part of the libQt5Xml.so build command above, the directories searched for dependencies are:

                                        -L~/Projects/Odroid/C2/sysroot/usr/lib 
                                        -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu 
                                        -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl 
                                        -L~/Projects/Odroid/C2/Qt/qt5-build/lib -lQt5Core -lpthread
                                        

                                        Of these, the ones under sysroot are on the target device and the last one is on the host. The problem is that the target also has (an older) Qt5 installation (5.5.1) on it. /usr/lib/aarch64-linux-gnu on the target has all the libQt5*.so files, including libQt5Core.so. It seems like the linker picks up the first libQt5Core.so it finds, which is the one on the target, not the one that was just built on the host (under qt5-build/lib). That does not have the functions required by the new Qt version, and the link fails.

                                        Removing the older Qt5 on the target

                                        odroid@odroid64:~$ sudo apt-get remove libqt5*
                                        

                                        works and the 'make' completes without errors. If only the order of directories in the link step could be reversed (such that the local dir is searched first) then the correct libQt5Core.so could be used.

                                        So ultimately, after this long-winded explanation, the question is, is there a way to force the linker to look in the local directories first? I tried the -R option on 'configure', setting it to the qt5-build/lib directory on the host, but that didn't make a difference.

                                        A 1 Reply Last reply
                                        0
                                        • vikramgV vikramg

                                          Thanks @ambershark
                                          I should have specified that my question was for the case of cross-compiling Qt for an RPi-class embedded device. In particular, I am building on an x86-64 PC running Ubuntu 16.04.2, for an aarch64 Odroid C2 also running Ubuntu 16.04.2. After a lot of rooting around, I have discovered that the problem is the following:

                                          One of the places where the "undefined reference" error hits, is for a surprisingly mundane function like QString::resize(), in a link target like libQt5Xml.so:

                                          ~/Projects/ARM/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -shared
                                          -o libQt5Xml.so.5.8.0
                                          -L~/Projects/Odroid/C2/sysroot/usr/lib -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl -L~/Projects/Odroid/C2/Qt/qt5-build/lib 
                                          -lQt5Core -lpthread
                                          

                                          Objects like qstring.o were bundled like so into libQt5Core.so, preceding the above step:

                                          aarch64-linux-gnu-g++ -shared -o libQt5Core.so.5.8.0 ... .obj/qstring.o ...<many other .o objects here>... -L~/Projects/Odroid/C2/sysroot/usr/lib -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl -lpthread -licui18n -licuuc -licudata -lm -ldl -lrt -lz -lpcre16 -lgthread-2.0 -lglib-2.0
                                          

                                          So the make process is building a libQt5Core.so, pulling in required libs (e.g. libicudata.so, libdl.so, librt.so etc) from the target machine from the *lib* directories under sysroot. The newly created libQt5Core.so is located in the qt5-build/lib directory on the host machine.

                                          The problem arises when the linker tries to create a target that requires libQt5Core.so. Repeating part of the libQt5Xml.so build command above, the directories searched for dependencies are:

                                          -L~/Projects/Odroid/C2/sysroot/usr/lib 
                                          -L~/Projects/Odroid/C2/sysroot/lib/aarch64-linux-gnu 
                                          -L~/Projects/Odroid/C2/sysroot/usr/lib/aarch64-linux-gnu -lrt -ldl 
                                          -L~/Projects/Odroid/C2/Qt/qt5-build/lib -lQt5Core -lpthread
                                          

                                          Of these, the ones under sysroot are on the target device and the last one is on the host. The problem is that the target also has (an older) Qt5 installation (5.5.1) on it. /usr/lib/aarch64-linux-gnu on the target has all the libQt5*.so files, including libQt5Core.so. It seems like the linker picks up the first libQt5Core.so it finds, which is the one on the target, not the one that was just built on the host (under qt5-build/lib). That does not have the functions required by the new Qt version, and the link fails.

                                          Removing the older Qt5 on the target

                                          odroid@odroid64:~$ sudo apt-get remove libqt5*
                                          

                                          works and the 'make' completes without errors. If only the order of directories in the link step could be reversed (such that the local dir is searched first) then the correct libQt5Core.so could be used.

                                          So ultimately, after this long-winded explanation, the question is, is there a way to force the linker to look in the local directories first? I tried the -R option on 'configure', setting it to the qt5-build/lib directory on the host, but that didn't make a difference.

                                          A Offline
                                          A Offline
                                          ambershark
                                          wrote on last edited by
                                          #23

                                          @vikramg Hmm that's a good question. It really shouldn't be behaving like that.

                                          I wonder if you try passing LDFLAGS="-L/qt/lib/dir/you/want/to/use" to your configure and subsequent build. I'm not sure if that would work but it may. You could try that in CFLAGS as well or CXXFLAGS.

                                          It shouldn't use the system libs over your libs specified with -L paths though. I'm not sure why it's doing that.

                                          My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                          vikramgV 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved