Has anyone successfully built Qt from source recently on a Pi?
-
Hello all,
TLDR: It seems like most forum requests for specific solutions to build from source issues go unanswered. Does anyone have a good solution for building Qt from source for the latest combination of Raspberry Pi 3/Raspbian/Q5.x.x?
I've been working for a while to build Qt from source on a Pi. I was able to succesfully cross compile using the https://wiki.qt.io/RaspberryPi2EGLFS guide. However, I'm also trying to build PyQt, which I couldn't successfully cross compile and since QMake isn't installed on the Pi during a cross compile of Qt, I can't do a local build of PyQt if I did a cross build of Qt.
I've tried a few tutorials to attempt to build Qt5.7.1 natively on the Pi. I've got multiple Pi's setup so the 1-2 day build time isn't a big deal for me--if it works. I've tried to simplify my setup as much as possible to rule out any other issues. My setup is as follows:
- Qt5.7.1 from http://download.qt.io/official_releases/qt/5.7/5.7.1/single/qt-everywhere-opensource-src-5.7.1.tar.gz
- Raspberry Pi 3
- Stock Raspbian Pixel (currently 2017-01-11-raspbian-jessie)
- PiTouch screen
I've tried both https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi and https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi. I've also browsed through some of the QtonPi forum history and it seems like most of the specific build failure requests seem to go unanswered. I'm working through one issue at a time, but now I'm also trying to switch to 5.8.0 to take advantage of some of the fixes to QtQuickControls.
All of the build procedure guides are very out of date. Is anyone doing this successfully with the newest releases?
-
Hello all,
TLDR: It seems like most forum requests for specific solutions to build from source issues go unanswered. Does anyone have a good solution for building Qt from source for the latest combination of Raspberry Pi 3/Raspbian/Q5.x.x?
I've been working for a while to build Qt from source on a Pi. I was able to succesfully cross compile using the https://wiki.qt.io/RaspberryPi2EGLFS guide. However, I'm also trying to build PyQt, which I couldn't successfully cross compile and since QMake isn't installed on the Pi during a cross compile of Qt, I can't do a local build of PyQt if I did a cross build of Qt.
I've tried a few tutorials to attempt to build Qt5.7.1 natively on the Pi. I've got multiple Pi's setup so the 1-2 day build time isn't a big deal for me--if it works. I've tried to simplify my setup as much as possible to rule out any other issues. My setup is as follows:
- Qt5.7.1 from http://download.qt.io/official_releases/qt/5.7/5.7.1/single/qt-everywhere-opensource-src-5.7.1.tar.gz
- Raspberry Pi 3
- Stock Raspbian Pixel (currently 2017-01-11-raspbian-jessie)
- PiTouch screen
I've tried both https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi and https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi. I've also browsed through some of the QtonPi forum history and it seems like most of the specific build failure requests seem to go unanswered. I'm working through one issue at a time, but now I'm also trying to switch to 5.8.0 to take advantage of some of the fixes to QtQuickControls.
All of the build procedure guides are very out of date. Is anyone doing this successfully with the newest releases?
@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?
-
@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?
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.
-
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.
@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. :)
-
@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 -
@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@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.
-
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
-
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
@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.
-
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
-
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
@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.
-
@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
-
@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
@msluser Lol scroll up... that problem was addressed in this thread already. ;)
-
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
-
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
@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. :)
-
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...
-
@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. :)
@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.
-
@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.
@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.
- 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 runqmake -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.-
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.
-
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.