Want to set up Qt5 for developing application in Wandboard
-
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 ?
-
Please see the new qmake.conf 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_ES2 += /usr/include/GLES2/
QMAKE_LIBDIR_OPENGL_ES2 += /usr/lib/i386-linux-gnu/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)@
-
Can you make sure those libraries are for ARM ? You can use file command for that.
eg.
@
file /usr/lib/i386-linux-gnu/libGLESv2.so
@and post the output here
-
No these files are not for ARM, its for Intel, see the o/p
msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src/qtbase$ file /usr/lib/i386-linux-gnu/libGLESv2.so
/usr/lib/i386-linux-gnu/libGLESv2.so: symbolic link to `mesa-egl/libGLESv2.so'msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src/qtbase$ file /usr/lib/i386-linux-gnu/mesa-egl/libGLESv2.so
/usr/lib/i386-linux-gnu/mesa-egl/libGLESv2.so: symbolic link to `libGLESv2.so.2.0.0'msil@msil-ThinkCentre-Edge71:~/Qt5.3.1/5.3/Src/qtbase$ file /usr/lib/i386-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
/usr/lib/i386-linux-gnu/mesa-egl/libGLESv2.so.2.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=9a43029fd41b7b30967de0b2c1b43bcdd5316606, strippedHow to get corresponding ARM files?
-
Can you again locate libGLESv2.so and check if there's other libraries and then running file command for each of them ?
But since you have apt-get install'd the drivers it should have downloaded the ARM versions of those libraries instead of Intel.
Is wandboard arm based for sure ? -
When I give locate libGLESv2.so then only a single file found which is for Intel version. No other file found.
i am not getting what you asked about Wandboard, can you plz elaborate?
-
I said that since you have installed opengl es libraries using apt-get i think it should have downloaded arm compatible libraries and not intel
Can you
@
apt-get install libgles1-mesa libgles1-mesa-dev
apt-get install freeglut3 freeglut3-dev
@and then see if you get arm based libraries
-
Still I am not getting the libGLESv2.so file other than previous.
Can you tell from scratch how to setup Qt for my wandboard application?
I think there is some wrong at my end while doing all this thing.
-
can I explain you in brief how i am started & how i reached at this stage in my project?
this will help you to know if i was wrong at some point during this progress.