[TUTO] Build Qt to cross compile for arm
-
Hi,
Can anyone say,
what it does: fourth step
."/configure -opensource -confirm-license -prefix /usr/local/Qt-4.8.5-arm -embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++"
specially this part "embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++"
because,
I downloaded qt src code 5.7.1 and arm-linux-gnueabihf-gcc 6.5.0, and I found my qmake.conf file in "/home/<username>/Downloads/qt-everywhere-opensource-src-5.7.1/qtbase/mkspecs/linux-arm-gnueabi-g++"
So,now I need to configure,not getting the above path,I don't have qws directory,
can I give just ./configure for configuration?
-
@IknowQT said in [TUTO] Build Qt to cross compile for arm:
ERROR: Unknown command line option '-embedded'.
You were already told to remove such option in this post.
Please don't double post, just follow one thread with your issue.
-
Getting Error : The errors we are encountering seem to be related to missing member variables and functions in the Ui::QPrintWidget and Ui::QPageSetupWidget classes, which are generated by Qt's User Interface Compiler (uic) based on .ui files. How to solve it ?
-
@Abhijeet-0 Please provide more information:
- Relevant code
- Pro/CMakeLists.txt file
- Exact error messages
- Qt version
-
@jsulm Version: QT 4.8.5
ARM Compiler : ARM Compiler
Whenever execute : make -j9 ARCH=arm CROSS_COMPILE=home/odroid/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-
Error Come : ^
make[1]: *** [Makefile:132921: .obj/release-shared-emb-arm/qpagesetupdialog_unix.o] Error 1
make[1]: *** [Makefile:135029: .obj/release-shared-emb-arm/qfiledialog.o] Error 1
make[1]: Leaving directory '/home/odroid/installQt/qt-everywhere-opensource-src-4.8.5/src/gui'
make: *** [Makefile:385: sub-gui-make_default-ordered] Error 2 -
@Abhijeet-0 said in [TUTO] Build Qt to cross compile for arm:
make[1]: *** [Makefile:132921: .obj/release-shared-emb-arm/qpagesetupdialog_unix.o] Error 1
Please post actual error which are somewhere above this line...
Is there a reason why you're using this ancient Qt version? -
@jsulm Sorry, completely new in this filed. Wanted to work with QT Creator 4.11.0 but many file is missing in QT Creator 4.11.0 such as mkspecs, do you suggest how to do this if go with QT Creator 4.11.0.
And secondly, please find error screenshot here.
Can you please guide to exact direction without errors ?
-
@Abhijeet-0 Error is very large. So shared screenshoot. Unable to copy and paste text error due to virtual machine limitation.
-
@jsulm @ @Abhijeet-0 Changed platform now : Qt-5.12.8-
ARM : gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnuWhenever write command get errors :
odroid@odroid:~/installQt/qtbase-everywhere-src-5.12.8$ ./configure -opensource -confirm-license -prefix /usr/local/Qt-5.12.8-aarch-little-endian -no-pch -xplatform qws/linux-aarch-gnu-g++
Creating qmake...
.Done.
ERROR: Invalid target platform 'qws/linux-aarch-gnu-g++'.How to solve it ?
-
@Abhijeet-0 said in [TUTO] Build Qt to cross compile for arm:
odroid@odroid:~/installQt/qtbase-everywhere-src-5.12.8$ ./configure -opensource -confirm-license -prefix /usr/local/Qt-5.12.8-aarch-little-endian -no-pch -xplatform qws/linux-aarch-gnu-g++
First of all: do NOT build inside source code folder!
Create a build folder, go to this folder and call configure from there.
If you then still get errors then post the FIRST error.What you're doing has nothing to do with QtCreator.
-
@jsulm @ thank you for your explanation : Actually followed same step mentioned in :
Fourth : Execute the Qt configure
Go to /home/<yourUserName>/qt-everywhere-opensource-src-4.8.5/
Execute this command to install Qt in the /usr/local/Qt-4.8.5-arm/ directory : ./configure -opensource -confirm-license -prefix /usr/local/Qt-4.8.5-arm -embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++
Done Changes :
odroid@odroid:~/installQt/qtbase-everywhere-src-5.12.8$ ./configure -opensource -confirm-license -prefix /usr/local/Qt-5.12.8-aarch-little-endian -no-pch -xplatform qws/linux-aarch-gnu-g++
Creating qmake...
.Done.
ERROR: Invalid target platform 'qws/linux-aarch-gnu-g++'.How to solve it ? Where is source folder ? Where to build source code folder ?
Another Approach :
@jsulm ,
Now Changed :
QT : qt-everywhere-opensource-src-4.8.6
ARM : gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux
Get following Error :
make[1]: Entering directory '/home/odroid/installQt/qt-everywhere-opensource-src-4.8.5/src/corelib'
arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DELF_INTERPRETER="/lib64/ld-linux-x86-64.so.2" -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-arm-gnueabi-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qabstractanimation.o animation/qabstractanimation.cpp
make[1]: arm-none-linux-gnueabi-g++: Command not found
make[1]: *** [Makefile:6917: .obj/release-shared-emb-arm/qabstractanimation.o] Error 127
make[1]: Leaving directory '/home/odroid/installQt/qt-everywhere-opensource-src-4.8.5/src/corelib'
make: *** [Makefile:200: sub-corelib-make_default-ordered] Error 2
Explanation : It seems like we've configured qmake to use the compiler arm-linux-gnueabihf-g++. However, the error message suggests that the build process is looking for arm-none-linux-gnueabi-g++, which indicates a mismatch between the expected compiler name and the actual compiler name Then where is arm-none-linux-gnueabi-g++ ? only arm-linux-gnueabihf-g++ exits -
@Abhijeet-0 So, you're still building inside the source folder? You really should not. Please start with a fresh source folder without any build artefacts and build in a build folder.
"Now Changed" - do you mean you changed the configure parameters? If so post the new configure call. -
@jsulm , thank you for your explanation. Left that part. From Yesterday doing it does not solve anything. Kindly focus on below, requesting you to help solve below errors.
Now focusing on
@jsulm ,
Now Changed :
QT : qt-everywhere-opensource-src-4.8.6
ARM : gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux
Get following Error :
make[1]: Entering directory '/home/odroid/installQt/qt-everywhere-opensource-src-4.8.5/src/corelib'
arm-none-linux-gnueabi-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DELF_INTERPRETER="/lib64/ld-linux-x86-64.so.2" -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-arm-gnueabi-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qabstractanimation.o animation/qabstractanimation.cpp
make[1]: arm-none-linux-gnueabi-g++: Command not found
make[1]: *** [Makefile:6917: .obj/release-shared-emb-arm/qabstractanimation.o] Error 127
make[1]: Leaving directory '/home/odroid/installQt/qt-everywhere-opensource-src-4.8.5/src/corelib'
make: *** [Makefile:200: sub-corelib-make_default-ordered] Error 2
Explanation : It seems like we've configured qmake to use the compiler arm-linux-gnueabihf-g++. However, the error message suggests that the build process is looking for arm-none-linux-gnueabi-g++, which indicates a mismatch between the expected compiler name and the actual compiler name Then where is arm-none-linux-gnueabi-g++ ? only arm-linux-gnueabihf-g++ exits How to do this ?