Want to set up Qt5 for developing application in Wandboard
-
Hi All,
I am working on Wandboard Solo. I am developing my application in Ubuntu for that i want to set up Qt5 for wandboard. I learn how to create new project using Qt Creater, but i am getting stuck at qmake configuration. I am not able to define qmake configuration on wandboard. I want to set up crosscompiler in Qt creater which can compile & gives suitable output file for Wandboard.
I tried to go thru the link "http://wiki.wandboard.org/index.php/Setup_QT_creator_for_developing_QT_apps_on_wandboard". but i am not understanding the part "Export the qmake variables to QT Creator 3.0" that how the qmake configuration is set for Wandboard & how the path "{Yocto directory}/build/tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/qtbase/5.1.1- r0/build/config.summary" will created.
Can someone suggest the steps to set up Qt5 for Wandboard in detail?
Regards,
Mayur Gaikwad -
Dear All,
Please reply some one as early as possible.
-
Have you compiled Qt on this board prior to setting up Qt Creator ?
After configuring and compiling Qt you will get config.summary in that path.
And as per the link that you posted you have to add those qmake varaibles in qtcreator.shI can't give a 100% solution on this, since i have not compiled Qt on this board.
-
Hi,
First of all thank you for replying on my query.
Actually I haven't compiled Qt for this board. I want to compile on this board & for that I tried to configure Qt5 by setting the compilers & debuggers as arm-linux-gnueabihf-g++ & arm-linux-gnueabihf-gdb respectively. But I am not getting how to set Qt Version, Kits & Devices for the same.
So to know that I went through the *"setup_QT_creator_for_developing_QT_apps_on_wandboard" *but I am not understanding some part of it.
can you please tell me how to configure Qt & how to set Qt Version, Kits, Devices etc for Wandboard?
Thanks
-
Could you try this "Cross_compile_Qt5":http://wiki.wandboard.org/index.php/Building_Qt5_using_yocto_on_Wandboard#Cross_compile_Qt5 ?
Look out for
@
./configure -v -opensource -confirm-license -device imx6 ...
@which probably helps in configuring Qt as long as the requirements are satisfied.
-
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