- Flutter on Raspberry Pi with flutter-pi - 26 November, 2019
- ESP8266 NodeMCU pinout for Arduino IDE - 19 November, 2019
- Cross-compile and deploy Qt 5.12 for Raspberry Pi - 17 November, 2019
Qt 5.12 is a long-term support (LTS) release of the popular Qt framework. If you are not familiar with it, Qt is a rich framework with plenty of ready-to-use multi-platform components for diverse areas such as multimedia, network, connectivity, graphics, and much more.
In this tutorial, you will learn how to cross-compile Qt 5.12 for Raspberry Pi in your computer and install it in your Raspberry. This will allow you to design and build your Raspberry Pi apps in your computer thanks to Qt Creator and, execute and debug them directly in your Raspberry Pi. Qt creator is a powerful multi-platform Integrated Development Environment (IDE) to create and deploy your Qt apps and it is available for Linux, macOS and Windows.
Article updates
29 September, 2019 | Updated for Qt 5.12.4 & 5.12.5, and Raspbian Buster |
10 May, 2019 | Updated for Qt 5.12.3 |
23 January, 2019 | First version for Qt 5.12, later updated for Qt 5.12.2 |
Hardware
This tutorial considers Raspberry Pi 3 model B+ and Qt 5.12 branch, however these instructions should be similar for new Qt releases, as well as other Raspberry Pi board versions. The desktop Operating System (OS) is Linux (it works in most common Linux distributions: Ubuntu, openSUSE, Debian, Fedora, etc.) and the Raspberry Pi OS is Raspbian Buster, any version works (Raspbian Stretch is also supported). Again, the tutorial steps should be quite similar in other configurations.
These are affiliate links. This means if you click on the link and purchase the promoted item, we will receive a small affiliate commission at no extra cost to you, the price of the product is the same. We would really appreciate your support to our work and website if this is fine for you.
Note: this tutorial works for Qt 5.12 and 5.12.2 to 5.12.5 (it doesn’t for 5.12.1 due to some bugs). For Qt 5.12.2 to 5.12.5, the build configuration file must be set to linux-rasp-pi-g++ instead of linux-rasp-pi3-g++ in the -device argument. This is also mentioned below in the step 6. Stay tuned for updates about new versions. Also, have a look at the comments below for new findings.
It is assumed that you have a SD card with Raspbian strech installed in your Raspberry Pi, otherwise download it and follow the installation guide. Also, check that you have the latest firmware, or install it and reboot the system. Execute the following command in the Raspberry Pi command-line interface for updating the firmware.
sudo rpi-update reboot
Make sure that you have activated the Secure Shell (SSH) protocol in Raspbian. We will need it later to comunicate Qt Creator with your Raspbery Pi.
sudo raspi-config
Select Interfacing Options, select ssh, choose yes and finish.

The following list summarizes the main steps to cross-compile Qt 5.12 for Raspberry Pi, we will be describing each of them in this post. The [Pi] label means this action is done in the Raspberry Pi, whereas [Co] means it has to be performed in you computer.
- Install development libraries – [Pi]
- Prepare target folder – [Pi]
- Create working folder and set a toolchain – [Co]
- Create and configure a sysroot – [Co]
- Download Qt – [Co]
- Configure Qt for cross compilation – [Co]
- Compile, install and deploy Qt – [Co]
- Setup Qt Creator for Raspberry Pi cross compilation – [Co]
1. Install development libraries – [Pi]
We need to install some development libraries, so the first thing to do is to allow the system to install source packages, for this you only have to uncomment the deb-src line in the /etc/apt/sources.list file, which configures the system repositories. Use your favorite text editor for this, we are using nano in this example.
sudo nano /etc/apt/sources.list
The next step is to update and install the required development packages.
sudo apt-get update sudo apt-get build-dep qt4-x11 sudo apt-get build-dep libqt5gui5 sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0
2. Prepare target folder – [Pi]
This step just involves creating a folder in our Raspberry Pi for the pi user. This folder (/usr/local/qt5pi) will be used to deploy Qt from our computer to the Raspberry Pi.
sudo mkdir /usr/local/qt5pi sudo chown pi:pi /usr/local/qt5pi
3. Create working folder and set a toolchain – [Co]
Create a working folder in your computer and download the toolchain.
mkdir ~/raspi cd ~/raspi git clone https://github.com/raspberrypi/tools
4. Create and configure a sysroot – [Co]
A sysroot is a directory structure that includes all the folders needed to run a particular system. We are creating here a sysroot for Raspberry Pi cross compilation in our computer.
mkdir sysroot sysroot/usr sysroot/opt
We can use rsync to synchronize our computer sysroot and the Raspberry Pi. So, if we make changes in our computer sysroot, they can be easily transferred to our Raspberry Pi; raspberrypi_ip is the network interface name or IP address of your Raspberry Pi.
rsync -avz pi@raspberrypi_ip:/lib sysroot rsync -avz pi@raspberrypi_ip:/usr/include sysroot/usr rsync -avz pi@raspberrypi_ip:/usr/lib sysroot/usr rsync -avz pi@raspberrypi_ip:/opt/vc sysroot/opt
Next, we need to adjust our symbolic links in sysroot to be relative since this folder structure is in both our computer and Raspberry Pi.
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py chmod +x sysroot-relativelinks.py ./sysroot-relativelinks.py sysroot
5. Download Qt – [Co]
Download and untar Qt 5.12.5 or any other version you want to use.
wget http://download.qt.io/official_releases/qt/5.12/5.12.5/single/ qt-everywhere-src-5.12.5.tar.xz tar xvf qt-everywhere-src-5.12.5.tar.xz cd qt-everywhere-src-5.12.5
6. Configure Qt for cross compilation – [Co]
Note: In new Raspbian versions, EGL libraries have different names than those assumed in Qt configuration files, so edit the ./qtbase/mkspecs/devices/linux-rasp-pi-g++/qmake.conf file and substitute all references to -lEGL and -LGLESv2 for -lbrcmEGL and -lbrcmGLESv2, respectively.
The linux-rasp-pi3-g++ (Qt 5.12) or linux-rasp-pi-g++ (Qt 5.12.2 to Qt 5.12.5) folder applies to Raspberry Pi 3 version, if you have a different board version check the list of compatible devices which can be found in ./qtbase/mkspecs/devices and in the table below (summarized from the table in the tutorial to build Qt 5.12 for Raspbian directly on Raspberry Pi).
Version | Configure option | Architecture | Remarks |
Raspberry Pi 3 (not working for Qt 5.12.2 to 5.12.5) | -device linux-rpi3-g++ | ARM V8 | QtScript build fails -skip qtscript needed |
Raspberry Pi 2 | -device linux-rpi2-g++ | ARM V7 | |
Raspberry Pi 1 Raspberry Pi Zero | -device linux-rpi-g++ | ARM V6 |
An alternative way to fix the issue with the EGL libraries (copying and moving them) is given at Qt Wiki – RaspberryPi2EGLFS – step 14.
The following command configure the open-source Qt version for cross compilation. Again, the particular device is set by the -device argument in this case linux-rasp-pi-g++, set the appropriate value for your board version. You can omit the compilation of problematic or time consuming modules using the -skip argument. In this case, we have omitted the compilation of the qtwayland, qtlocation and qtscript modules.
Note: For Qt 5.12.2 to 5.12.5, the build configuration file must be set to linux-rasp-pi-g++ instead of linux-rasp-pi3-g++ in the -device argument.
./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm
For a successful configuration, verify that the build options includes EGFLS for Raspberry Pi.
Build options: ...... QPA backends: ...... EGLFS .................................. yes EGLFS details: ...... EGLFS Raspberry Pi ................... yes ......
7. Compile, install and deploy Qt – [Co]
The exact compilation time depends on your computer performance. This process can take up to 2 or 3 hours in nowadays common computers. Compiler processes can be executed in parallel by means of the j flag. For four make processes, execute: make -j 4.
make make install
Once Qt is compiled, it can be deployed to your Raspberry Pi using the rsync command.
rsync -avz qt5pi pi@raspberrypi_ip:/usr/local
Note: You may face some errors during the compilation the Qt 5.12 process due to some bugs. They have been already patched in Qt 5.12.1, but this tutorial currently doesn’t work for this version. You may prefer to compile the newest Qt 5.12.2 to Qt 5.12.5 versions to avoid these bugs.
The procedure to fix these bugs for Qt 5.12 consists in downloading Qt 5.12.1 and overwriting the same files in your Qt 5.12.0 source folder. You can find a list of the bugs you may face below together with the files you need to update.
qendian – QTBUG-71945
- qtbase/src/corelib/global/qendian.cpp
- qtbase/src/corelib/global/qendian.h
qquicktableview – QTBUG-71998
- qtdeclarative/src/quick/items/qquicktableview.cpp
qconnectionfactories – QTBUG-72991
- qtremoteobjects/src/remoteobjects/qconnectionfactories.cpp
qquickcontrol – QTBUG-73308
- qtquickcontrols2/src/quicktemplates2/qquickcontrol.cpp
qvirtualkeyboardselectionlistmodel – Qt bug?
- qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.cpp
8. Setup Qt Creator for Raspberry Pi cross compilation – [Co]
If you do not have installed Qt Creator, follow the instructions in the Qt download page to download and install it. Then, follow these instructions to configure cross-compilation support.
First, open Qt Creator, go to the Tools -> Options menu, select the Devices section and Devices tab. Add a new Generic Linux Device.
Set a name for the configuration (Raspberry Pi), the network name or IP, the username (pi) and password (by default raspberry).

Before you finish the wizard, the connection to your Raspberry Pi will be verified and you will have then a new device configured in Qt Creator.

Next, go to the Kits section and Compilers tab, Add GCC C and C++ cross compilers for Raspberry Pi.
The path for the GCC C Raspberry Pi compiler is ~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/gcc.

The path for the GCC C++ Raspberry Pi compiler is the same as for the GCC C compiler.

Next, go to the Debuggers tab, and Add a debugger, set its path to ~/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb.

Go to the Qt Versions tab and Add a new version: Qt 5.12 (Raspberry Pi), set the qmake path to ~/raspi/qt5/bin/qmake.

Finally, go to the Kits tab, Add a new kit, set the name and icon you prefer, and pay attention to the following configuration:
- Device type: Generic Linux Device
- Device: Raspberry Pi (defaut for Generic Linux)
- Sysroot: ~/raspi/sysroot
- Compiler C: GCC (Raspberry Pi)
- Compiler C++: GCC (Raspberry Pi)
- Debugger: GDB (Raspberry Pi)
- Qt version: Qt 5.12 (Raspberry Pi)

All the configuration is already done. You can test your configuration by creating anew project and selecting the previously defined kit configuration: Raspberry Pi.

Congratulations! You can now design, build and deploy your Qt Raspberry Pi apps in you computer and, execute and debug them directly in your Raspberry Pi.
Hi ,thanks for the excellent article!
I got the error with “make” command. Any thoughts on approach?
make[3]: arm-linux-gnueabihf-g++: Command not found
Makefile:11829: recipe for target ‘.obj/qendian.o’ failed
make[3]: *** [.obj/qendian.o] Error 127
make[3]: Leaving directory ‘/home/pi/raspi/qt-everywhere-src-5.12.0/qtbase/src/corelib’
Hi Alex GTECH,
I think I forgot to mention in the post that the ~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ folder must be included in the PATH environment variable, something like this.
Let me know if this work for you to include this information in the post, thanks.
Hi Javier Bonilla. Thanks for the update on the issue I have done this PATH environment variable ,but still get the same error. with ‘qendian’ issue, i found this report, and update file ‘qendian.h’ to 5.12.1 version https://bugreports.qt.io/browse/QTBUG-71945 now I get other error below Makefile:115341: recipe for target ‘.obj/qquicktableview.o’ failed make[3]: *** [.obj/qquicktableview.o] Error 1 make[3]: Leaving directory ‘/home/pi/raspi/qt5build/qtdeclarative/src/quick’ I also try to git checkout with qt 5.12.1 , and got the error ‘opengl test failed’ on step 6. ‘configure’. And It can be compile successed 5.10.1 with the this post. Qt ver. 5.12.0 Target compiler: gcc 4.8.3 Raspberry Pi… Read more »
No matter what I do, make returns with g++ Command not found. What could be the problem? perf@ubqt5:~/qt-everywhere-src-5.12.2$ ./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf-g++ -sysroot ~/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm + cd qtbase + /home/perf/qt-everywhere-src-5.12.2/qtbase/configure -top-level -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf-g++ -sysroot /home/perf/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/qt5pi -extprefix /home/perf/raspi/qt5pi -hostprefix /home/perf/raspi/qt5 -no-use-gold-linker -v -no-gbm Creating qmake… g++ -c -o main.o -std=c++11 -ffunction-sections -fdata-sections -g -g -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake/library -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake/generators -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake/generators/unix -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake/generators/win32 -I/home/perf/qt-everywhere-src-5.12.2/qtbase/qmake/generators/mac -I/home/perf/qt-everywhere-src-5.12.2/qtbase/include -I/home/perf/qt-everywhere-src-5.12.2/qtbase/include/QtCore… Read more »
Reply to myself:
I had to install the native g++
-sorry for the noise.
No problem Per, I am glad you solved it 🙂
Hi Alex,
I did not experienced any of these issues, maybe it is related to the compiler version, mine is gcc 7.4.0. You can also try to add the
-platform linux-g++-64
argument to theconfigure
command for the opengl test failed problem, as commented here, https://forum.qt.io/topic/78224/opengl-test-failed-when-configure-qt-asource/3.Hi Javier
Thank you for your prompt reply.
I got the toolchain tool form git ‘https://github.com/raspberrypi/tools’, there are two version:
the gcc-linaro-arm-linux-gnueabihf-raspbian-x64 is 4.8.3
and arm-rpi-4.9.3-linux-gnueabihf
In 4.9.3 toolchain, there are some issues have to resolved. It can’t be used easily…
I think it requires more steps or configure to complete. solve compiler missing path…etc
I fond the latest toolchain version is 7.4
https://releases.linaro.org/components/toolchain/binaries/latest-7/
Is this the version you are currently using? I’ll try this tool.
Thank You Again
Hi Alex, I am using indeed version 4.8.3, sorry for the confusion. I downloaded the 7.4 version you mentioned, but just for testing, I didn’t finally used it. I’ve been having a look at QTBUG-71945 and it is mentioned there that adding Q_DECL_CONSTEXPR fix this problem. Have you tried this on Qt 5.12? It consits in commenting lines between 165 to 178 in ~/raspi/qt-everywhere-src-5.12.0/qtbase/src/corelib/global/qendian.h and adding a general function, as follows. /* template <> inline qfloat16 qbswap<qfloat16>(qfloat16 source) { return qbswapFloatHelper(source); } template <> inline float qbswap<float>(float source) { return qbswapFloatHelper(source); } template <> inline double qbswap<double>(double source) { return… Read more »
Hello Javier,
It seems that Alex already tried to fix Q_DECL_CONSTEXPR. But he had a NEW issue with “recipe for target ‘.obj/qquicktableview.o’ failed”
I did exactly the same (I fixed Q_DECL_CONSTEXPR issue), and had the same ISSUE with “qquicktableview.o failed’.
Either you or Alex have found any solution ?
Hi Jpp,
Ok, I found this bug, QT-71998. There is patch here.
Lines 1650-1651 and 1681-1682 must be modified in ~/raspi/qt- everywhere-src-.12.0/qtdeclarative/src/quick/items/ qquicktableview.cpp according to the patch details.
First, thank you for your reply.
It fixed the QQUICKTABLEVIEW bug.
I encounter a new bug with ExternalIoDevice and the way to fix it is here ==> https://codereview.qt-project.org/#/c/247134/
Great, thanks for sharing!
I had some others issues during compilation.
I managed to compile the complete source code. And now all is OK.
But I had to modify 5 files. (The problem was each time with the connect() function). To see how to modify the code, I looked (each time) for the same file in 5.12.1 branch.
Maybie it would be better to compile directly with 5.12.1 version.
I’ll try…
Yes, probably it’s better. Let’s hope there are no new bugs in Qt 5.12.1 🙂
Hi all~
I tried the latest toolchain 7.4.1. (gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf)
The qt source code I used is
{Qt install directory}/5.12.0/Src/
I dont know how to fix the new toolchain’s relative path, so I refer the below article’s 0~2 script file(*.sh)
https://github.com/Kukkimonsuta/rpi-buildqt
The script run on origin tool“arm-rpi-4.9.3-linux-gnueabihf”, so I replace the file and folder with newer v7.4.1 folder , and run the scripts (evn.sh, 0_init.sh , 2_sync.sh) to fixed path missed problem.
Now it works~!!
The toolchain 4.8.3 wroks fine on qt5.10.1 but be a issue hell for qt 5.12.0.
I think there are still something details I missed .
Hi Alex,
Awesome! thanks for sharing,
I think Qt 5.12.1 release will be much easier to compile with the 4.8.3 toolchain than Qt 5.12 since the Qt team already patched most of the bugs.
Hi Javier.
Thank you for the time and patience~
I had tried the qt5.12.0 cross-compile for a month.
I’ve learned a lot from this article.
Hi Alex,
Thanks, I am glad this post is useful 🙂
Same error on make command. Did you find any solution ? @alex
I used the latest toolchain 7.4.1. (gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf)
https://releases.linaro.org/components/toolchain/binaries/latest-7/
It work for 5.12.0.
Thank you!
This configuration works also for me.
But I can’t configure QtCreator. Which GCC did you put for the c++ compiler? Because there are no GCC in gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin/ !
The c++ compiler should be specify to {your 7.4.1 toolchain’s folder}/bin/arm-linux-gnueabihf-g++
In my case, I copy and replace the 7.4.1 file to origin toolchain’s folder (arm-rpi-4.9.3-linux-gnueabihf).
So my c++ compile folder is
/home/alex/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/
The QtCreator c++ path to:
/home/alex/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
Thank you very much Javier Bonilla… You saved me a lot of time…. Its cool to see my Qt Qml application running in Raspberry Pi 3B+……
Harikrishnan, that’s great! Yes, it is really cool and easy to deploy apps from Qt Creator to Raspberry Pi 🙂
Hi Javier, I had a doubt..Configure option in the building of qt uses opengl as one of the option. But my QML applications seem to be bit slow on the Raspberry Pi 3B+. I enabled the GL driver in the raspi-config. But the Qt seems to be still using EGLFS. How can I make sure it is using Open GL instead so that I could get better performance. Can you please give me some insights on this ?
Hi Harikrishnan,
I think EGLFS is the way to go for cross-compiling Qt for hardware accelerated OpenGL on Raspberry Pi. Have a look at the following link to see if you can get more information about this in Platform Plugins for Embedded Linux Devices – EGLFS.
http://doc.qt.io/qt-5/embedded-linux.html
Hello,
I tried your method and the a bit of the steps here: http://www.tal.org/tutorials/building-qt-512-raspberry-pi
I get the following error
home/pi/qt-everywhere-src-5.12.0/qtbase/mkspecs/linux-g++ -o verifyspec.o /home/pi/qt-everywhere-src-5.12.0/qtbase/config.tests/verifyspec/verifyspec.cpp
ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken
Could you tell me what i did wrong? I am new to rpi
EDIT: the error log is : https://pastecode.xyz/view/905135b1
Hi Preh,
The other tutorial you mentioned is for compiling Qt in the Raspberry Pi itself, whereas this is for cross-compiling Qt for the Raspberry Pi, but in your computer, and then transfer the compiled Qt to the Raspberry Pi.
Stick to one or the other, but do mix both, because strange things can happen 🙂
Hello Javier,
The reason I mixed both was that I already have Qt 5.12.0 installed in my Ubuntu.
Also I have an older version of Qt (4.8.6) in my raspi Pi. My Pi is connected to my VM for cross compilation with the old version (Pi Qt 4.8.6 to VM Qt 5.12.0).
I know this is messed up, but I need a library from Qt 5.12 (QtSerialPort) in my Pi. Any sort of lead will be much appreciated 🙂
I followed this tutorial. For the Qt 5.12.1. But i keep getting the “opengl test failed problem” I created a vm with ubuntu as host. And a clean rpi with stretch image. “./configure -platform linux-g++-64 -opengl es2 -release -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm -v” ERROR: Feature ‘opengles2’ was enabled, but the pre-condition ‘config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)’ failed. ERROR: The OpenGL functionality tests failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],… Read more »
Hi Christian,
Not sure but, did you follow step 6?
Note: In new Raspbian stretch versions, EGL libraries have different names than those assumed in Qt configuration files, so edit the ./qtbase/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf file and substitute all references to -lEGL and -LGLESv2 for -lbrcmEGL and -lbrcmGLESv2, respectively.
yes i did.
i will try today with a new vm step by step.
The GIT Repo for the script to fix the sym links is not available anymore.
https://raw.githubusercontent.com/riscv/riscv-poky/priv-1.10/scripts/sysroot-relativelinks.py
i used
https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
Thanks for the info, I’ve updated the link.
This are the steps i performed with a new Virtual Maschine
Ubuntu 18.04 Desktop with current updates.
https://pastecode.xyz/view/73731d0c
The Result is:
https://pastecode.xyz/view/d2a4ca87
Hi Christian,
The same happened to me! this is something related to Qt 5.12.1. I’ll try to figure it out, but it may take sometime until I can have time to investigate this.
You can try Qt 5.12 instead, you may face some issues, as commented here, but it can be done 🙂
Thank you for confirming this. I thought i was too stupid.
I will try 5.12 later.
I hope you find somthing.
Cross Compiling with 5.12.0 worked with the replacement of some files/patches from 5.12.1.
Hi Christian, can you point me what files/patches did you use from 5.12.1? I’m still trying to cross compile without success. Thanks
There is always an error during compilation and the file is mentioned. There wehre 5-6 errors, where i copied the files from the 5.12.1 sources
i remember. something with
– qendian
– qquicktable
– quicktableselectionmodel
– qvirtualkeyboard
but if you inspect the error message the correct file is shown
Hi Giovanni,
Did you manage to compile it? I will do some testing to elaborate a list of the files and include this information in the post
Hi Javier! No luck yet. modifying qendian file seemed to work but I got other errors. I will keep trying. If there’s any progress I’ll post back here.
Hi Giovanni,
For Qt 5.12.0, I updated the post with more info about some bugs and how to fix them. Have a look at step 7 and let me know if that works for you.
With respect to Qt 5.12.1, I’m still testing, but no luck yet.
Same problem here with 5.12.1. I tried a lot to find the problem, but no luck.
Let me know if you find the trick.
https://stackoverflow.com/questions/44639014/qt-cross-compilation-for-raspberry-pi-cannot-find-glesv2/44648097#44648097
It can make the 5.12.1 configure step working, but there are something result is wrong.
QPA backends:
EGLFS ……………. yes
EGLFS details:
EGLFS Raspberry Pi …… no
I have tried many times and failed at the very same point. I have edited the qmake.conf according to your advices – but the error is the same. And the requested library files do exist in the folder (as downloaded from the RPi). I have tried a VirtualBox based Ubuntu (Ubuntu 18.04.2 LTS clean install) as well as an older Ubuntu laptop running 16.04 LTS. Both stop at the very same error. I believe the problem is within the qmake config-file, but I am not able to prove it or fix it. I have tried both 5.12.1 and 5.12.2 but… Read more »
Hey Christian! I’m having the same issue 🙁
Anyone has been able to find the solution?
I have the same issue:
It can make the 5.12.1 configure step working, but there are something result is wrong.
QPA backends:
EGLFS ……………. yes
EGLFS details:
EGLFS Raspberry Pi …… no
but I’m not able to find a solution!
I got this error. It is strange.
None of [libGLESv2.so libGLESv2.a] found in [/home/alex/raspi/sysroot/usr/lib/arm-linux-gnueabihf] and global paths.
=> source produced no result.
I have check those files is really exist, but system can not detected??
Yes, this seems to be the problem!
Javier, thanks for all your effort to build this tutorial. It’s more clear than others that I’ve read.
Unfortunately, I was not able to generate QT. The error about undefined reference occurs after run “make install”. I’ve tried many things to fix, but always I’ve got the some related error.
.obj/hunspellinputmethod_p.o: In function
QtVirtualKeyboard::HunspellInputMethodPrivate::createHunspell(QString const&)':
qEnvironmentVariable(char const*)’hunspellinputmethod_p.cpp:(.text+0x16cc): undefined reference to
.obj/hunspellworker.o: In function
QtVirtualKeyboard::HunspellAddWordTask::alternativeForm(QString const&, QString&)':
QString::isLower() const’hunspellworker.cpp:(.text+0xb04): undefined reference to
collect2: error: ld returned 1 exit status
Makefile:94: recipe for target ‘../../../../lib/libQt5HunspellInputMethod.so.5.12.0’ failed
make[5]: *** [../../../../lib/libQt5HunspellInputMethod.so.5.12.0] Error 1
Do you know what could cause this error?
This is a collateral effect after opting by this https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/#comment-46
However, I tried before with the recommended compiler and I wasn’t happy. 🙁
In file included from ../../include/QtCore/qglobal.h:1:0,
from ../corelib/global/qt_pch.h:56:
../../include/QtCore/../../src/corelib/global/qglobal.h:121:49: error: static assertion failed: Required feature library for file ../../include/QtCore/../../src/corelib/plugin/qlibrary.h not available.
# define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
^
../../include/QtCore/../../src/corelib/global/qglobal.h:87:36: note: in expansion of macro ‘Q_STATIC_ASSERT_X’
#define QT_REQUIRE_CONFIG(feature) Q_STATIC_ASSERT_X(QT_FEATURE_##feature == 1, “Required feature ” #feature ” for file ” FILE ” not available.”)
^
../../include/QtCore/../../src/corelib/plugin/qlibrary.h:45:1: note: in expansion of macro ‘QT_REQUIRE_CONFIG’
QT_REQUIRE_CONFIG(library);
Hi Carlos,
Thanks! I don’t have much experience with the 7.4 .1 toolchain.
For the 4.8.3 toolchain, I found a similar error in the link below, it is suggested there to check sysroot relative links and also cleanup and rebuild to not mix different compilers.
https://forum.qt.io/topic/87981/qt-5-10-1-cross-compile-for-raspberry-pi-3-in-debian-stretch/21
You can do a workaround, to ./configure, like this: -no-feature-openssl
Javier, I restarted the installation from a clean raspbian install and it worked. 🙂 However, I face some problems in QT Creator not recognizing the syntax of the files. The first error message is “qglobal.h: 45:12: fatal error: file ‘type_traits’ not found” … I’m feeling a bit tired and sad in realizing how difficult and silly it is to waste a lot of time to install QT. There is a lot of efforts of brave people like you to install QT, but it isn’t a deterministic process and it is a bit disappointing. What we could do to make this… Read more »
Sorry for the outburst.
I recompile all code again using gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf and was not necessary to apply any fix.
Now I’m testing 5.12.1 version.
Hi Carlos,
That’s great! yes, sometimes, the process is frustrating, especially when you face bugs. With respect to 5.12.1, let me know if you figure it out.
Hello im having the same problem as you, can you tell me how you solved it?
Hi Javier,
Thanks for this great article.
Could you tell me how to add the openCV in this cross-compile chain, please?
Thanks in advance
Thanks nparis,
I’m sorry I don’t have much experience with openCV. I’ve used TensorFlow and TensorFlow Lite for computer vision applying deep learning.
Those previous tutorials focused on apps for mobile devices. For embedded and mobile devices I recommend TensorFlow Lite. I’ve also done some testing with Raspberry Pi, Qt and TensorFlow Lite, this could be a good idea for a new tutorial 🙂
Thanks for your reply.
Your idea for a new tutorial on Raspberry Pi, Qt and Tensorflow Lite is really great.
Please make it.
Ok, I add it to the ToDo list 🙂
Hi nparis,
We already have a tutorial about this! have a look 🙂
https://mechatronicsblog.com/raspberry-pi-tensorflow-lite-and-qt-qml-object-detection-example/
Hello
I’m trying to cross compile QT from Linux to RPi3; I have a question regarding QtWebEngine.
According to the documentation, “On Linux, Clang or GCC version 5 or later is required. ” but you are using 4.8.3 toolchain. How is this possible?
Thanks
Hi Mewster,
I think this is because GCC version 5 or above is required for native compilation, whereas Linaro GCC 4.8.3 is still supported for cross compilation.
Hmm, while I was cross-compiling (following the qt.io tutorial) and building qtwebengine submodule separately, qmake told me the gcc version error, and that its build would be skipped.
Are you sure that you built qtwebengine and that it wasn’t skipped the same?
Tomorrow I’ll try your tutorial anyway, but I’m asking because the cross-compilation will take at least half of the day and I don’t want to find out at the end that some submodules had been skipped…
Let me check the log files, because I think you are right and probably qtwebengine was skipped. I haven’t used this module on Raspberry Pi in my apps.
If you’d do that, I’d really thank you!
I found anyway that 5.10 qtwebengine doesn’t requires a 5+ gcc version, I think this dependency was introduced with 5.11
Hi Mewster,
You are right, QtWebEngine module was skipped when cross compiling Qt 5.12 with the GCC 4.8.3 toolchain. You can try the solution given by Alex GTECH and cross compile Qt with the 7.4.1 toolchain.
That’s sad :c I altready cross-compiled using a later gcc version than 4.8.3 but got other issues, I hoped this tutorial somehow magically could fix them hehe.
Thanks anyway!
QT 5.12.0, I managed to compile all the submodules I needed (config was ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtscript -skip qtandroidextras -skip qtcanvas3d -skip qtgamepad -skip qtmacextras -skip qtpurchasing -skip qtcanvas3d -skip qtquickcontrols -skip qtwinextras -skip qtx11extras -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -no-gbm -nomake examples -nomake tests I skipped the platform specific extras and some deprecated modules ) using gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf (its use makes useless the git clone of raspberry tools since this is the only used “tool”) The compilation took almost half of the day, and… Read more »
That’s great! now QtWebEngine can be used on Raspberry Pi. Thanks for sharing Mewster 🙂
Only for RPI3, as i know, because no armv6 gcc >5.0 toolchain is available and working with sysroot and this guide. Anyone got QtWebEngine working with RPI0 or RPI1?
Has your qtwebengine actually been built? In my compilation, qtwebengine was skipped due to bug that was supposedly fixed in 5.11.1: https://bugreports.qt.io/browse/QTBUG-67983.
Have you encountered it? Made any special steps?
I had the same problem. In my case, the host system REALLY had issues: there was no 32bit compiler.
sudo apt-get install g++-multilib
(yes, my qtwebengine was built in the end)
Thank you very much for the reply, that helped me too.
Hi, I followed the tutorial and read the comments. I have a problem with QtWebEngine. When I compile, I get the following: cd qtwebengine/ && ( test -e Makefile || /home/r/raspi/qt-everywhere-src-5.12.0/qtbase/bin/qmake -o Makefile /home/r/raspi/qt-everywhere-src-5.12.0/qtwebengine/qtwebengine.pro ) && make -f Makefile make[1]: se entra en el directorio ‘/home/r/raspi/qt-everywhere-src-5.12.0/qtwebengine’ g++ -m64 -Wl,-O1 -o qtwebengine -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread /usr/bin/ld: no se puede encontrar -lQtGui /usr/bin/ld: no se puede encontrar -lQtCore collect2: error: ld returned 1 exit status Makefile:103: recipe for target ‘qtwebengine’ failed make[1]: *** [qtwebengine] Error 1 make[1]: se sale del directorio ‘/home/r/raspi/qt-everywhere-src-5.12.0/qtwebengine’ Makefile:1029: recipe for target ‘module-qtwebengine-make_first’ failed make: *** [module-qtwebengine-make_first]… Read more »
Did you follow correctly all the installation scripts? Why do you have a path /home/r/raspi and not /home/raspi?
This is my script: #!/bin/bash dev_path=/home/r pi_device=linux-rasp-pi3-g++ cross_compiler_path=$dev_path/raspi/tools/arm-bcm2708/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin sysroot_path=$dev_path/raspi/sysroot pi_target_path=/usr/local/qt5pi host_target_path=$dev_path/raspi/qt5pi install_target_path=$dev_path/raspi/qt5 export PATH=$PATH:/home/r/raspi/tools/arm-bcm2708/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin export COMPILER_PATH=/home/r/raspi/tools/arm-bcm2708/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin export PKG_CONFIG_DIR= export PKG_CONFIG_LIBDIR=/home/r/raspi/usr/lib/pkgconfig:/home/r/raspi/usr/share/pkgconfig:/home/r/raspi/usr/lib/arm-linux-gnueabihf/pkgconfig export PKG_CONFIG_SYSROOT_DIR=$sysroot_path ./configure -release -opengl es2 \ -device $pi_device \ -device-option CROSS_COMPILE=$cross_compiler_path/arm-linux-gnueabihf- \ -sysroot $sysroot_path \ -opensource -confirm-license \ -make libs \ -prefix $pi_target_path \ -extprefix $host_target_path \ -hostprefix $install_target_path \ -no-use-gold-linker -v -no-gbm -nomake examples -nomake tests When I run: make install, I can check that in the destination folder are the files. Just fail in qtwebengine. In my pc, I have installed qt4 and several libraries of qt5 (version 5.9). Can it be the problem? Thanks for the… Read more »
It COULD be, but I sincerely never encountered this error in my tests
I have noticed that the Makefile file uses the system libraries. I don’t know why and I can’t remove those libraries from system. Could you put your Makefile file in pastebin.com? That way, I can fix it. Thanks
https://pastebin.com/ZnbJQhG8
Thank so much. I note a problem in my script (environment variable PKG_CONFIG_LIBDIR is badly defined) and I had to install the libnss3-dev library. With this changes I can to compile QtWebEngine perfectly.
How did you install the libnss3-dev library? I already have it installed and it still complains about it.
Hi jaymee,
What error are you getting?
Hi Mewster,
How many time do you need to build qtwebengine?
I’m around 6 hours and still not finished. (quadcore with 6 Go RAM and 9 Go swap). I had to increase swap size because of some out of memory errors with cc1plus. Now everything seems to be fine but it’s very long…
[…] To cross-compile QT 5.12.0 on PI just follow https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/ […]
Hi. Thanks for the post. I can compile on Kubuntu 18.04 and run on Raspberry 3. But I have a problem when I try to run from QtCreator on Kubuntu. I’m using analog clock example from Qt. I receive these error messages: 11:19:11: Starting /usr/local/qt5pi/examples/gui/analogclock/analogclock… Unable to query physical screen size, defaulting to 100 dpi. To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters). QOpenGLShaderProgram: could not create shader program QOpenGLShader: could not create shader Could not link shader program: “” QOpenGLShaderProgram: could not create shader program QOpenGLShader: could not create shader QOpenGLShaderProgram::uniformLocation(texture): shader program is not linked QOpenGLShaderProgram::uniformLocation(mat): shader program… Read more »
Another information: I can run the deployed app on rasp, but not from linux host.
Problem solved. It seems like the lib /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 is wrong. The right lib is /opt/vc/lib/libbrcmGLESv2.so. So, make a backup of /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 and do:
ln -s /opt/vc/lib/libbrcmGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2
I can now run my cross compiled app from Qt Creator on Rasp.
That’s great Jonathan and thanks for sharing the solution to this problem.
Thanks, it worked for me too
Great tutorial!
Thank a lot Luis
If you have problems with OpenGLES not being found, make sure you have libraspberrypi-dev installed on the real RPi system! If you install it after doing Step 4, rsync /opt again!
Bim, thanks for sharing this info 🙂
Hi Bim! I’m trying to cross-compile QT 5.12 but I have the same error. When I configure qtbase the OpenGLES not being found. QPA backends: DirectFB …………………………. no EGLFS ……………………………. yes EGLFS details: EGLFS OpenWFD …………………… no EGLFS i.Mx6 …………………….. no EGLFS i.Mx6 Wayland ……………… no EGLFS RCAR ……………………… no EGLFS EGLDevice …………………. yes EGLFS GBM ………………………. no EGLFS VSP2 ……………………… no EGLFS Mali ……………………… no EGLFS Raspberry Pi ………………. no <– NOT DETECTED EGLFS X11 ………………………. yes LinuxFB ………………………….. yen I tried also to modified the library name into qtbase/mspeck/devices/raspi/ as suggest Javier Bonilla in this tutorial https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/ but… Read more »
I have just resolved the issue. I modified the qmake.conf for raspberry pi 3 in this way (Adding $$[QT_SYSROOT]):
VC_LIBRARY_PATH = $$[QT_SYSROOT]/opt/vc/lib
VC_INCLUDE_PATH = $$[QT_SYSROOT]/opt/vc/include
VC_LINK_LINE = -L$${VC_LIBRARY_PATH}
QMAKE_LIBDIR_OPENGL_ES2 = $${VC_LIBRARY_PATH}
QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2
QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2
That’s great Giulio! Thanks for sharing.
btw. this change has to be done before the configure script is run for the first time! It seems like VC_INCLUDE_PATH is baked into qmake which is compiled at the first run of configure.
Thanks for the remark Tomas.
Hi Guys, I also have a problem: “EGLFS Raspberry Pi ………………. no”. I’ve changed what Gulio suggested but later on I couldn’t go further. I tried to configure again, but it was not successfull maybe because of the reason Tomas mentioned (namely that this should be done before the configure script is run for the first time). My question is: How to make it possible to run it “first” time?
Thank you Javer for this useful tutorial! Just a note that I have previously managed to build Qt-11.4 using the latest gcc-8.2.0, but with Qt-12.0 Linaro seems to be the only (not too painful) way. Hope we will soon get the breakthrough with 12.4 as well.
What version of Raspbian is required? Is Raspbian Stretch with desktop sufficient or is Raspbian stretch with desktop and recommended software the one to go for. I guess my preferred Raspbian Stretch Lite cannot be used if I want to follow your tutorial?
I used the lite version
Hi Per, I tested myself in Raspbian Strech with Desktop, but the tutorial should work in any of them. Maybe you need to install some additional libraries and tools in the lite version.
Thanks Dusan! I’m still testing with the latest Qt version.
Hello Javier,
I was able to cross compile Qt 5.12.2 using your tutorial but I had to change the used build configuration file from “linux-rasp-pi3-g++” to “linux-rasp-pi-g++” (changing this, the issue about open GL not being found was fixed). Maybe this information will help others.
Hi jetsper,
That’s great! thanks a lot for sharing. I will update the tutorial to let know other readers.
Hello, thanks for the clear explanations 🙂 but….. I’m on Debian 9, everything seems to works fine but I do not get any QT Creator executable file after the make, many others are there (qtdiag and others). I went through the log and find this in the very beginning : /home/pi/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard –sysroot=/home/pi/raspi/sysroot -O2 -std=gnu++1y -w -fPIC -I. -I/home/pi/raspi/qt-everywhere-src-5.12.2/qtbase/mkspecs/devices/linux-rasp-pi-g++ -o main.o main.cpp main.cpp:5:4: error: #error __cplusplus must be > 201103L (the value of C++11) # error __cplusplus must be > 201103L (the value of C++11) ^ Makefile:177 : la recette pour la cible « main.o »… Read more »
(Same user, I wasnt logged in for my first post) Just in case it could be usefull : Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: devices/linux-rasp-pi-g++ (arm, CPU features: ) Target compiler: gcc 4.8.3 Configuration: cross_compile compile_examples enable_new_dtags largefile precompile_header shared rpath release c++11 concurrent dbus reduce_exports stl Build options: Mode …………………………….. release Optimize release build for size …….. no Building shared libraries ………….. yes Using C standard ………………….. C11 Using C++ standard ………………… C++11 Using ccache ……………………… no Using gold linker …………………. no Using new DTAGS …………………… yes Using precompiled headers ………….. yes Using LTCG… Read more »
This is not used to create QTCreator, but just to create the libs.
QTCreator is just an IDE (like Visual Studio)
Thank you, so I will just download and install QT installer file and install it on my desktop Debian then crosscompile to my pi 🙂
Hi Onclebob11,
Let us know if it worked for you.
Hi, I have done this procedure many times but I always get a “segmentation fault” error, how to solve it?
Hi Pourya,
Where are you getting the segmentation fault error?
Hi
I did a fresh install and did every step again and it solved. I think I had forgotten to resync my files after compilation in my previous tries.
Hi, I’m pulling by hair out with QT cross compilation for Pi. This tutorial is one of the best out there but I’m still struggling to get over an issue in QT where it can’t find QCoreApplication, QQmlApplicationEngine, QStringLiteral, etc on a simple blank QtQuick test project. The toolchain seemed to compile and make OK, only complaining about Qtdoc, I’ve tried 5.12.0 and copying in the patch files, 5.12.1 and 5.12.2, all exhibit the same. I’m running this on a Ubuntu 18.04.2 VM ware Box. My feeling is that it’s a path or environment issue, but I’m no guru on… Read more »
If you look here:
https://forum.qt.io/topic/100994/qt5-12-x-raspberry-pi-zero-cross-compilation-qcoreapplication-error/5
you can see my set-up
Hi Andy,
I am not sure why you are facing this issue. I will have a look and let you know if I find something.
Hi Javier,
Thank for your response. Have you had chance to look into this yet?
Hi I’ve started AGAIN! from a fresh.
It seems that I get this when I open main.cpp
qglobal.h:45:12: fatal error: ‘type_traits’ file not found
However, it does exist in raspi/sysroot/usr/include/c++/6
Hi Andy,
Sorry, I have been trying to figure it out, but no luck yet.
Thanks Javier, I’ve had a bit of success in that I’ve actually got a simple Qt Quick project to compile, qmake and run on a Pi when transferred via scp even though what seems Qt Creator can’t find the aforementioned files amongst others. So this clearly means the tool chain has built OK for Pi. The second issue is that to get the Qt Quick to run I have to switch to legacy GL mode in raspi-config. Otherwise I get XCP * failed to add service – already in use?. I’m still convinced that the Qt Creator problem is a… Read more »
Ok, so I understand that running on EGLS will always be full screen as it has no concept of a window. So using –platform xcb resolved that issue. However to get that to work I had to build the project on QT 5.10.1. So my last and BIGGEST issue is the fact that QT creator can’t seem to locate the header files of the toolchain. Even though they exist and the project builds. If I start to add in the header files under INCLUDEPATH like this: INCLUDEPATH += \ /home/qtdev/raspi/qt5/mkspecs/devices/linux-rasp-pi-g++ \ /home/qtdev/raspi/sysroot/usr/ \ /home/qtdev/raspi/sysroot/usr/include \ /home/qtdev/raspi/sysroot/usr/include/c++/6 \ /home/qtdev/raspi/sysroot/usr/include/c++/6/tr1 \ /home/qtdev/raspi/sysroot/usr/include/linux… Read more »
Hi while i am debuging my projects qt creator shows this message
Do you need “set solib-search-path” or “set sysroot”?Could not load shared library symbols for 3 libraries, e.g. /usr/local/qt5pi/qml/QtQuick/Controls
it is shown for more than one library it’s like gdb server does not see the libraries. and when i want to #include some standard c++ libraries in project it also does not see. The strangest thing is that the program however runs with this errors. Is there a solution for this topic?
I forgot to mention that program works for Qt libraries despite the errors. It does not work fork the others. I’ll be appreciated for any help. I am facing this problem for couple weeks and I’ve searched in many forums and pages in the internet and still haven’t gotten an answer.
I’ve done some analysis and I think the problem is with the GDB. I’ve created gui in qml which work good. But I am not able to write any background code in c++ becouse the debuger doesn’t see the libraries. I have no idea what is going on. Do i need to make whole process from this page for cross compilation again from the beginning ? I am running out of the ideas. This tutorial is the only one that i found and seems to work, but maybe i am doing something wrong ?
Hi Junior,
The c++ libraries you mentioned are installed in the Raspberry Pi? are they your own code? Did you syncronize sysroot in order to get them in your Raspberry Pi as well as in your computer?
Yes I think that they are however Could you explain how to do it so i will do it again (install libraries). And one more thing I’ve missed this:”In new Raspbian stretch versions, EGL libraries have different names than those assumed in Qt configuration files, so edit the ./qtbase/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf file and substitute all references to -lEGL and -LGLESv2 for -lbrcmEGL and -lbrcmGLESv2, respectively. The linux-rasp-pi3-g++ folder applies to Raspberry Pi 3 version, if you have a different board version check the list of compatible devices which can be found in ./qtbase/mkspecs/devices”. So I cut everything off and today I will… Read more »
Yes I’ve done all the syncronization in this article 🙂
Put in GDB’s startup commands “set solib-search-path /home/yourname/raspi/qt5pi/lib”.
Gdb gets confused about the “real” lib folder.
Ok now i am totaly confused. I’ve done carefully the whole cross compilation process again and set the solib search patch as Mewster suggest but it seems that the problem still egsists. I’ve added a g++ compiler is it ok ? Mean while i will try do something again.
Do you think that the problem could be with installed gdb on raspberry Pi ?
i’ll try to reinstall raspian and see if it helps