Problem to build Qt5 for Udoo quad
-
Hi all, i'm trying to buid Qt5 for my udoo quad but i have somes problems. first, i'm trying to cross compile with this tutorial : "buid Qt5 Udoo":http://www.udoo.org/ProjectsAndTutorials/how-to-build-qt5-for-udoo/?portfolioID=1394 . I use the Udoobuntu fileSystem : "OS":http://www.udoo.org/downloads/
After my qmake.conf :
@
include(../common/linux_device_pre.conf)ROOTFS_PATH=/home/modjo/Udoo/Qt5_build
TOOLCHAIN_PREFIX=/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/binEGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_imx6.cpp
QMAKE_INCDIR += $${ROOTFS_PATH}/usr/include $${ROOTFS_PATH}/usr/bin
QMAKE_LIBDIR += $${ROOTFS_PATH}/usr/lib/arm-linux-gnueabihf $${ROOTFS_PATH}/usr/libQMAKE_INCDIR_OPENGL_ES2 += /home/modjo/Udoo/Qt5_build/usr/include/GLES2
QMAKE_LIBDIR_OPENGL_ES2 += /home/modjo/Udoo/Qt5_build/usr/lib/GLESv2
#QMAKE_LIBS_EGL += /home/modjo/Udoo/Qt5_build/usr/lib/GLESv2
#QMAKE_LIBS_OPENGL_ES2 += /home/modjo/Udoo/Qt5_build/usr/lib/GLESv2
#QMAKE_LIBS_OPENVG += /home/modjo/Udoo/Qt5_build/usr/lib/OpenVG
QMAKE_LIBS_EGL += -lEGL
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG += -lOpenVG -lEGL -lGAL
QMAKE_LFLAGS += -Wl,-rpath-link,$$/home/modjo/Udoo/Qt5_build/lib/arm-linux-gnueabihf
IMX6_CFLAGS = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
QMAKE_CFLAGS += $$IMX6_CFLAGS
QMAKE_CXXFLAGS += $$IMX6_CFLAGS
include(../common/linux_arm_device_post.conf)
load(qt_config)
@when i use configure :
@
./configure -prefix /opt/qt5 -make libs -no-pch -no-opengl -device imx6 -device-option CROSS_COMPILE=/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/ -no-largefile -opengl es2 -qt-zlib -qt-libpng -qt-libjpeg -no-nis -no-cups -gui -make examples -sysroot /home/modjo/Udoo/Qt5_build/exemples -no-gcc-sysroot -opensource -confirm-license -qreal float -v
@i have this errors :
@
/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -g -Wall -W -fPIE -I../../mkspecs/devices/linux-imx6-g++ -I. -I../../../../usr/include -I../../../../usr/bin -o arch.o arch.cpp
g++: error trying to exec 'cc1plus': execvp: No such file or directory
Messages de l'assembleur:
Erreur fatale: option -march= invalide: « armv7-a »
gmake: *** [arch.o] Erreur 1
Unable to determine architecture!Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
Determining architecture... ()
g++ -c -pipe -g -Wall -W -fPIE -I../../mkspecs/linux-g++ -I. -o arch.o arch.cpp
g++ -o arch arch.o
Found architecture in binary
CFG_HOST_ARCH="i386"
CFG_HOST_CPUFEATURES=""
System architecture: 'unknown'
Host architecture: 'i386'
C++11 auto-detection... ()
/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -O2 -std=c++0x -Wall -W -fPIE -I../../../mkspecs/devices/linux-imx6-g++ -I. -I/home/modjo/Udoo/Qt5_build/usr/include -I/home/modjo/Udoo/Qt5_build/usr/bin -o c++11.o c++11.cpp
g++: error trying to exec 'cc1plus': execvp: No such file or directory
Messages de l'assembleur:
Erreur fatale: option -march= invalide: « armv7-a »
gmake: *** [c++11.o] Erreur 1
C++11 disabled.
floatmath auto-detection... ()
/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -O2 -Wall -W -fPIE -I../../../mkspecs/devices/linux-imx6-g++ -I. -I/home/modjo/Udoo/Qt5_build/usr/include -I/home/modjo/Udoo/Qt5_build/usr/bin -o floatmath.o floatmath.cpp
g++: error trying to exec 'cc1plus': execvp: No such file or directory
Messages de l'assembleur:
Erreur fatale: option -march= invalide: « armv7-a »
gmake: *** [floatmath.o] Erreur 1
floatmath disabled.
.....
OpenGL ES 2.x auto-detection... ()
/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -O2 -Wall -W -fPIE -I../../../mkspecs/devices/linux-imx6-g++ -I. -I/home/modjo/Udoo/Qt5_build/usr/include/GLES2 -I/home/modjo/Udoo/Qt5_build/usr/include -I/home/modjo/Udoo/Qt5_build/usr/bin -o opengles2.o opengles2.cpp
g++: error trying to exec 'cc1plus': execvp: No such file or directory
Messages de l'assembleur:
Erreur fatale: option -march= invalide: « armv7-a »
gmake: *** [opengles2.o] Erreur 1
OpenGL ES 2.x disabled.
The OpenGL ES 2.0 functionality test failed!
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
/home/modjo/Udoo/Qt5_build/qt5/qtbase/mkspecs/devices/linux-imx6-g++.
@I search on this forum (and udoo, freescale ...) but i found nothing who can help me. Do you have an idea to resolve this ?
For information, i also tried to build directly qt on the udoo board, but i obtain this error
@
ubuntu@udoobuntu: ~/Qt5.3/qt-everywhere-opensource-src-5.3.2 $ sudo ./configure -prefix /opt/qt5 -make libs -no-pch -no-opengl -no-largefile -opengl es2 -qt-zlib -qt-libpng -qt-libjpeg -no-nis -no-cups -gui -make examples -sysroot ~/Qt5.3/examples -no-gcc-sysroot -opensource -confirm-license -qreal float -v
....
collect2: ld returned 1 exit status
make: *** [opengles2] Error 1
OpenGL ES 2.x disabled.
The OpenGL ES 2.0 functionality test failed!
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
/home/ubuntu/Qt5.3/qt-everywhere-opensource-src-5.3.2/qtbase/mkspecs/linux-g++.
@I dowloaded the source code here (not git) : "qt5.3":http://download.qt-project.org/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.gz
-
Hi and welcome to devnet,
The key work here is:
@Erreur fatale: option -march= invalide: « armv7-a »@
Seems armv7-a is problematic.
-
Ok, thanks for your answer ! Do you have an idea about this problem ? the compiler don't recognize the plateform ?
-
Looks like your version of gcc doesn't support it. Are you sure you are using a recent enough version ?
-
ok, i make this :
@
ubuntu@udoobuntu: ~ $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)@
It's the official version give by Udoo : "Toolchain":https://github.com/embest-tech/fsl-linaro-toolchain.git
if i need to use a newer version, i suppose that i need to build a new kernel ? -
I've been a bit misled by the errors you got. You have the right compiler, it's something else that make things fail.
Anyway, there's something that seems not quiet clear. Where do you have Qt's sources located ? Same question for the sysroot and toolchain
-
Hi,
I'm not an expert but i'm working on the same board trying to compile Qt5 on the same OS and failed. I wrote as user "nicola" a "thread on the Udoo forums":http://www.udoo.org/forum/cross-compile-qt5-udoobuntu-t1540.html , maybe there is something of use there.
[quote author="modjo" date="1413231642"]ok, i make this :
@
ubuntu@udoobuntu: ~ $ gcc -v
@[/quote]
From your console prompt i understand you executed this command in the target machine (the Udoo board).
The error messages quoted in the above messages are instead generated by the cross-compiler pointed by the "COSS_COMPILE" configure option. I think SGaist asked about the cross-compiler version.About the cross compiler you used:
@-device-option CROSS_COMPILE=/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/@
Now i see something strange in the value used as CROSS_COMPILER option. I think you need to use the prefix path of the compiler, not a folder. For example in the tutorial on the Udoo site they use this:
@-device-option CROSS_COMPILE=/path/to/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-@
Then "make" will append for example "gcc" or "ar" to complete the path according to the operation required.
In you error message "./configure" tried to execute
@/home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin/g++ <lots of parameters>
g++: error trying to exec 'cc1plus': execvp: No such file or directory@
but there is no "g++" executable in the "home/modjo/Udoo/Qt5_build/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/bin" folder of the cross compiler. At least not in the version recomended by the udoo tutorial i used.I hope I haven't written too many mistakes.
-
I've missed the g++ vs arm-fsl-linux-gnueabi-g++ !
That's one of the key point here, thanks !
-
Hi ariacorrente, happy to read you on this forum ! Thanks for your help (SGaist also !). For the moment i'm just trying to cross compile QT5 on linaro ubuntu (not udoobuntu) like the tutorial explain. If i will have a success i will try another time on udoobuntu !