Cross-compiling RPi application using Qt Creator
-
Hello,
On this link there is a manual on how to cross-compile RPi applications using Visual Studio:
Creating a Qt-Embedded app for Raspberry Pi
Can I find a similar manual on using Qt Creator instead of Visual Studio ?
Thanks. -
@Pavel_47 you may want to try this guide, in particular the section to setup Qt Creator
-
@Pavel_47 said in Cross-compiling RPi application using Qt Creator:
I plan to use Windows machine for that.
Ok, not a good idea in my opinion... You may want to use a VM with Linux instead.
Given that said, and assuming that you already setup the cross-compiling environment on Windows per this guide (it's related to the guide you mentioned in your first post) then setting up Qt Creator to use such cross-compiling toolchain/environment can be followed from the guide I pointed out. At Qt Creator level, it's most the same (obviously the paths will change slightly...). Good luck.
-
For building windows tools, manual specifies the following command:
mkdir qt-build cd qt-build ../qt-everywhere-opensource-src-5.5.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5
For RPi3 device I should probably use linux-rasp-pi-g++ instead of linux-rasp-pi2-g++. Correct ?
-
Here is the message what I get after executing build command:
The OpenGL ES 2.0 functionality test failed! Use of pkg-config is not enabled, maybe you want to pass -force-pkg-config? You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in c:/Users/pyo/Downloads/qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/devices/linux-rasp-pi-g++.
Any ideas ?
-
Device should be
linux-rasp-pi3-g++
or if you want EGLFS with full OpenGL support,linux-rasp-pi3-vc4-g++
-
Oh, Qt 5.5? Yes, that came out before Raspberry Pi 3 was on the market. I strongly recommend compiling a more modern version of Qt. Even Raspbian OS (which is veeery outdated) ships Qt 5.7...
-
I took source from here:
qt-everywhere-src-5.12.3
Can you provide link with more recent version.
Thanks -
@Pavel_47 said in Cross-compiling RPi application using Qt Creator:
So, what about original problem: what location use in bulding command - linux-rasp-pi-g++ or linux-rasp-pi2-g++ ?
All your input so far suggest you are actually compiling Qt 5.5. Please make sure you're working with the 5.12.3 source you downloaded.
-
Yes !!! Misunderstanding with my colleague - I believed that folder qt-everywhere-opensource-src-5.5.0 corresponds to the latest source of Qt. Indeed there are new device folder that correspond to RPi3: linux-rasp-pi3-g++ and linux-rasp-pi3-vc4-g++. What is the difference between them ?
Thanks. -
Error while building !
Preparing build tree... Creating qmake... ..............................c:/Users/pyo/Downloads/qt-everywhere-src-5.12.3/qtbase/src/corelib/global/qglobal.cpp: In function 'QString qEnvironmentVariable(const char*, const QString&)': c:/Users/pyo/Downloads/qt-everywhere-src-5.12.3/qtbase/src/corelib/global/qglobal.cpp:3346:49: error: '_wgetenv_s' was not declared in this scope _wgetenv_s(&requiredSize, 0, 0, wname.data()); ^ make.exe: *** [qglobal.o] Error 1
-
On this link the author propose a workaround (although I'm not sure if this workaround is valid for my case).
Anyway I've added this instruction (i.e. defined MINGW_HAS_SECURE_API flag as suggested)
DEFINES += UNICODE _UNICODE WIN32 MINGW_HAS_SECURE_API=1
in ...\win32-g++\qmake.conf
Unfortunately it didn't help -
Well, I reported this issue as bug on
https://bugreports.qt.io/