Want to set up Qt5 for developing application in Wandboard
-
Yes I went through the mentioned link but I am not getting it since it is for Yocto & I am doing in Ubuntu.
I used Linaro Toolchain for crosscompiling.
I tried using this command :./configure -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2 -make libs -device-option CROSS_COMPILE=/home/msil/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf- -device linux-imx6-g++ -sysroot /media/rootfs -no-gcc-sysroot -prefix /Qt5.3.1
but its giving error as
*Running configuration tests...
Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set.
Note: PKG_CONFIG_SYSROOT_DIR automatically set to /media/msil/rootfsCould not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
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/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++
*
After that i couldn't resolve this issue.Please clear me it any thing is missing.
-
It seems you don't have the OpenGL,
Since ubuntu try
@
sudo apt-get install libgles2-mesa-dev
@and then again configure.
-
After using -v as you suggested like,
sudo ./configure -v -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2 -make libs -device-option CROSS_COMPILE=/home/msil/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf- -device linux-imx6-g++ -sysroot /media/msil/rootfs -no-gcc-sysroot -prefix /Qt5.3.1
its giving me an error as,
*opengles2.cpp:45:25: fatal error: GLES2/gl2.h: No such file or directory
#include <GLES2/gl2.h>
^
compilation terminated.
make: *** [opengles2.o] 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/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++.
*The "compilation terminated" gets occures for multiple #include files like,
#include <pulse/pulseaudio.h>, #include <unicode/utypes.h>, #include <glib.h>, #include <dbus/dbus.h>And, other errors are,
make: *** [gnu-libiconv.o] Error 1
GNU libiconv disabled.
, make: *** [gnu-libiconv.o] Error 1
SUN libiconv disabled.,
make: *** [iconv] Error 1
POSIX iconv disabled.,
make: *** [cups.o] Error 1
Cups disabled.etc.
-
I aun this command & it gives me the o/p as,
msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src$ sudo apt-get install libgles2-mesa-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgles2-mesa-dev is already the newest version.
The following packages were automatically installed and are no longer required:
libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common
libgconf2-4 libgnome2-0 libgnome2-bin libgnome2-common libgnomecanvas2-0
libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0
libgnomevfs2-common libidl-common libidl0 liborbit-2-0 liborbit2
linux-headers-3.13.0-24 linux-headers-3.13.0-24-generic
linux-image-3.13.0-24-generic linux-image-extra-3.13.0-24-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. -
Still I got the same error as,
#include <GLES2/gl2.h>
^
compilation terminated.
make: *** [opengles2.o] 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/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++. -
Just run a find command on your system and check where GLES2/gl2.h header file is present.
-
Its giving me response as,
msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src$ find GLES2/gl2.h
find: `GLES2/gl2.h': No such file or directoryNot only this reply its giving same reply to all the include files as
find:
unicode/utypes.h': No such file or directory find:
pulse/pulseaudio.h': No such file or directory
find:glib.h': No such file or directory find:
dbus/dbus.h': No such file or directory -
No not like that, you need to learn how to use find on linux.
If you have locate command, run updatedb and then run command "locate gl2.h"
Once you get the location of that header file and its corresponding library set those to variables QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in /home/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++ -
Now I got the respose as
msil@msil-ThinkCentre-Edge71:~$ locate gl2.h
/home/msil/Qt5.3.1/5.3/Src/qtbase/include/QtANGLE/GLES2/gl2.h
/home/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/common/ios/GLES2/gl2.h
/home/msil/Qt5.3.1/5.3/Src/qtbase/src/3rdparty/angle/include/GLES2/gl2.h
/home/msil/Qt5.3.1/5.3/Src/qtwebkit/Source/ThirdParty/ANGLE/include/GLES2/gl2.h
/home/msil/Qt5.3.1/5.3/gcc/mkspecs/common/ios/GLES2/gl2.h
/home/msil/qt5/qtbase/mkspecs/common/ios/GLES2/gl2.h
/home/msil/qt5/qtbase/src/3rdparty/angle/include/GLES2/gl2.h
/usr/include/GLES2/gl2.hNow can you plz tell me which one of these paths i need to take..
-
Probably the last one and set it to QMAKE_INCDIR_OPENGL_ES2 also search for something like libGLESv2.so and set the path to QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 to may be -lGLESv2
-
For -lGLESv2 its giving response as ,
msil@msil-ThinkCentre-Edge71:~$ locate -lGLESv2 --limit
locate: invalid value `GLESv2' of --limitplz clear if i am wrong while passing command.
rest one is woking.Can you plz tell me in which file i find the variables QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2?
Is it inside the file named "qmake.conf"?
I am having two qmake.conf files on location..
a) /home/msil/Qt5.3.1/5.3/gcc/mkspecs/linux-arm-gnueabi-g++
b) /home/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/linux-arm-gnueabi-g++Which location file I have to modify?
-
No, -lGLESv2 is the library that you have to pass to QMAKE_LIBS_OPENGL_ES2 so that compiler understands that it has to compile the code against this library. Don't search it. Try passing that one as it is to QMAKE_LIBS_OPENGL_ES2.
See if you go to last posts of yours in this thread, you will see the below statements
bq. 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/msil/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++.So the second path.
-
You are right.
I did the same. Let I am explaining it with steps.
step1: Go to the path & edit qmake.conf file & save it.
msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src/qtbase/mkspecs/devices/linux-imx6-g++$ nano qmake.conf
Please find the code inside qmake file.
@
qmake configuration for the Freescale iMX6 boards (single, dual and quad)
This mkspec is based and tested on the ltib-source-release 3.0.15
Building ltib including glib, gpu-drivers and what ever you want to use (e.g. dbus or fontconfig)
This mkspec is tested with a framebuffer (eglfs) configuration (not testes with X11)
A typical configure line looks like:
/home/tsenyk/qt5/qt5/configure -opensource -confirm-license -make libs -device imx6 \
-device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- \
-sysroot <path-to-your-ltib-install>/rootfs -no-gcc-sysroot \
-prefix /usr/local/Qt-5.0.0/Qt5-imx6-1
NOTE: currently ltib doesn't produce a proper staging/sysroot-filessystem.
If gcc's --sysroot is used, the toolchain doesn't find basic binaries (e.g. crt1.o),
therefore you have to pass -no-gcc-sysroot to configure if you pass -sysroot to configure!
include(../common/linux_device_pre.conf)
EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_imx6.cpp
*QMAKE_INCDIR_OPENGL += /home/msil/Qt5.3.1/5.3/Src/qtwebkit/Source/ThirdParty/ANGLE/include/GLES2/gl2.h
QMAKE_LIBDIR_OPENGL += /usr/lib/i386-linux-gnu/libGLESv2.so
*
QMAKE_LIBS_EGL += -lEGL
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG += -lOpenVG -lEGL -lGALQMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib
IMX6_CFLAGS = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
IMX6_CFLAGS_RELEASE = -O2 $$IMX6_CFLAGS
QMAKE_CFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
QMAKE_CFLAGS_DEBUG += $$IMX6_CFLAGS
QMAKE_CXXFLAGS_DEBUG += $$IMX6_CFLAGSinclude(../common/linux_arm_device_post.conf)
load(qt_config) @
step2: Go to the path & enter the Command
msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src/qtbase$ sudo ./configure -v -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2 -make libs -device-option CROSS_COMPILE=/home/msil/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf- -device linux-imx6-g++ -sysroot /media/msil/rootfs -no-gcc-sysroot -prefix /Qt5.3.1
[sudo] password for msil:But after this again the same error occurs.
I am not getting what is wrong in this.
-
Where's QMAKE_INCDIR_OPENGL_ES2 ?
Set path until the folder and donot include header filename.Where's QMAKE_LIBDIR_OPENGL_ES2 ?
Set path until the folder and donot include library filename. -
You mean to say,
I have to include only the path & not the include files.As per my understanding this must be,
QMAKE_INCDIR_OPENGL += /home/msil/Qt5.3.1/5.3/Src/qtwebkit/Source/ThirdParty/ANGLE/include/GLES2
QMAKE_LIBDIR_OPENGL += /usr/lib/i386-linux-gnu
Is it OK?
And what about QMAKE_LIBS_OPENGL_ES2 ?
Is it OK with QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lGAL
-
Yes the path's are correct but not the variables. See there's _ES2 appended to each variable.
-
Ohhh, sorry
QMAKE_INCDIR_OPENGL_ES2 += /home/msil/Qt5.3.1/5.3/Src/qtwebkit/Source/ThirdParty/ANGLE/include/GLES2
QMAKE_LIBDIR_OPENGL_ES2 += /usr/lib/i386-linux-gnu
OK now?
And what about rest code in qmake.conf, is it ok?
-
Sorry, set QMAKE_INCDIR_OPENGL_ES2 to /usr/include/GLES2/
-
I set
QMAKE_INCDIR_OPENGL_ES2 = /usr/include/GLES2/
& rest code is as it is.
But after giving ./configure command problem is still as it is. -
But all the Paths are now correctly set ? Can you post the new qmake.conf ?