[Interest] Compilation issue for OpenGL ES2 on ARM/Linux

Thomas Senyk thomas.senyk at pelagicore.com
Fri Apr 12 11:27:57 CEST 2013


On Wed, April 10, 2013 04:19:37 PM Andre Renaud wrote:
> Hi,
> I'm trying to cross compile Qt 4.8.4 for an ARM target, with OpenGL ES2
> support.
> I use the following configure line:
> ./configure -opensource -embedded arm -confirm-license -xplatform
> qws/linux-arm-gnueabi-g++ -no-qt3support -prefix / -qt-mouse-tslib
> -qt-gfx-linuxfb -qt-gfx-transformed -opengl es2 -no-pch -no-feature-CURSOR
> -nomake examples -nomake demos -no-qt3support -no-multimedia
> -plugin-gfx-powervr
> However when building OpenGL I get the following errors:
> make[1]: Entering directory
> `/home/andre/work/connexionz/package-builder/build/qt-everywhere-opensource-
> src-4.8.4/src/gui' arm-none-linux-gnueabi-g++ -c -pipe
> -I/home/andre/work/connexionz/package-builder/staging//include -O2
> -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC
> -DQT_SHARED -DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMESPACE
> -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT
> -DQT_USE_QSTRINGBUILDER -DQT_NO_FONTCONFIG -DFT2_BUILD_LIBRARY
> -DFT_CONFIG_OPTION_SYSTEM_ZLIB -DQT_NO_OPENTYPE -DQT_NO_STYLE_MAC
> -DQT_NO_STYLE_WINDOWSVISTA -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_GTK
> -DQT_NO_STYLE_WINDOWSCE -DQT_NO_STYLE_WINDOWSMOBILE -DQT_NO_STYLE_S60
> -DQ_INTERNAL_QAPP_SRC -DQT_HAVE_NEON -DQT_NO_DEBUG -DQT_NETWORK_LIB
> -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
> -I../../mkspecs/qws/linux-arm-gnueabi-g++ -I. -I../../include/QtCore
> -I../../include/QtNetwork -I../../include -I../../include/QtGui
> -I.rcc/release-shared-emb-arm -Iimage -I../3rdparty/freetype/builds/unix
> -I../3rdparty/freetype/src -I../3rdparty/freetype/include
> -I../3rdparty/harfbuzz/src -Idialogs -I.moc/release-shared-emb-arm
> -I.uic/release-shared-emb-arm -o .obj/release-shared-emb-arm/qegl.o
> egl/qegl.cpp
> egl/qegl.cpp: In static member function 'static void
> QEglContextTracker::deref()':
> egl/qegl.cpp:70:41: error: 'eglTerminate' was not declared in this scope
> egl/qegl.cpp: In constructor 'QEglContext::QEglContext()':
> egl/qegl.cpp:94:11: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:96:22: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp: In member function 'bool QEglContext::isValid() const':
> egl/qegl.cpp:118:20: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp: In function 'EGLConfig QEgl::defaultConfig(int, QEgl::API,
> QEgl::ConfigOptions)':
> egl/qegl.cpp:219:13: error: 'EGL_CONFIG_ID' was not declared in this scope
> egl/qegl.cpp:223:77: error: 'eglChooseConfig' was not declared in this scope
> egl/qegl.cpp:235:27: error: 'EGL_WINDOW_BIT' was not declared in this scope
> egl/qegl.cpp:238:27: error: 'EGL_PIXMAP_BIT' was not declared in this scope
> egl/qegl.cpp:241:27: error: 'EGL_PBUFFER_BIT' was not declared in this
> scope egl/qegl.cpp:253:28: error: 'EGL_SURFACE_TYPE' was not declared in
> this scope
> egl/qegl.cpp:271:32: error: 'EGL_STENCIL_SIZE' was not declared in this
> scope
> egl/qegl.cpp:272:32: error: 'EGL_SAMPLE_BUFFERS' was not declared in this
> scope
> egl/qegl.cpp:275:32: error: 'EGL_DEPTH_SIZE' was not declared in this scope
> egl/qegl.cpp:280:32: error: 'EGL_ALPHA_SIZE' was not declared in this scope
> egl/qegl.cpp: In function 'EGLConfig QEgl::chooseConfig(const
> QEglProperties*, QEgl::PixelFormatMatch)':
> egl/qegl.cpp:296:70: error: 'eglChooseConfig' was not declared in this scope
> egl/qegl.cpp:302:78: error: 'eglChooseConfig' was not declared in this
> scope egl/qegl.cpp:312:80: error: 'eglChooseConfig' was not declared in
> this scope egl/qegl.cpp:315:59: error: 'EGL_RED_SIZE' was not declared in
> this scope egl/qegl.cpp:315:77: error: 'eglGetConfigAttrib' was not
> declared in this scope
> egl/qegl.cpp:316:59: error: 'EGL_GREEN_SIZE' was not declared in this scope
> egl/qegl.cpp:317:59: error: 'EGL_BLUE_SIZE' was not declared in this scope
> egl/qegl.cpp:318:59: error: 'EGL_ALPHA_SIZE' was not declared in this scope
> egl/qegl.cpp: In member function 'bool
> QEglContext::createContext(QEglContext*, const QEglProperties*)':
> egl/qegl.cpp:389:46: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:392:98: error: 'eglCreateContext' was not declared in this
> scope
> egl/qegl.cpp:393:20: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:400:16: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:401:89: error: 'eglCreateContext' was not declared in this
> scope
> egl/qegl.cpp: In member function 'void
> QEglContext::destroySurface(EGLSurface)':
> egl/qegl.cpp:417:20: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp:420:45: error: 'eglDestroySurface' was not declared in this
> scope
> egl/qegl.cpp: In member function 'void QEglContext::destroyContext()':
> egl/qegl.cpp:427:16: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:428:41: error: 'eglDestroyContext' was not declared in this
> scope
> egl/qegl.cpp:429:11: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp: In member function 'bool
> QEglContext::makeCurrent(EGLSurface)':
> egl/qegl.cpp:435:16: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:440:20: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp:479:68: error: 'eglMakeCurrent' was not declared in this scope
> egl/qegl.cpp: In member function 'bool QEglContext::doneCurrent()':
> egl/qegl.cpp:489:16: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:493:22: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp:508:79: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:508:93: error: 'eglMakeCurrent' was not declared in this scope
> egl/qegl.cpp: In member function 'bool
> QEglContext::swapBuffers(EGLSurface)':
> egl/qegl.cpp:527:15: error: 'EGL_NO_CONTEXT' was not declared in this scope
> egl/qegl.cpp:530:54: error: 'eglSwapBuffers' was not declared in this scope
> egl/qegl.cpp: In member function 'int QEglContext::configAttrib(int) const':
> egl/qegl.cpp:571:79: error: 'eglGetConfigAttrib' was not declared in this
> scope
> egl/qegl.cpp:575:16: error: 'EGL_DONT_CARE' was not declared in this scope
> egl/qegl.cpp: In function 'EGLDisplay QEgl::display()':
> egl/qegl.cpp:591:29: error: 'EGL_NO_DISPLAY' was not declared in this scope
> egl/qegl.cpp:593:44: error: 'eglGetDisplay' was not declared in this scope
> egl/qegl.cpp:597:54: error: 'EGL_DEFAULT_DISPLAY' was not declared in this
> scope
> egl/qegl.cpp:604:43: error: 'eglInitialize' was not declared in this scope
> egl/qegl.cpp:612:94: error: 'eglGetProcAddress' was not declared in this
> scope
> egl/qegl.cpp:618:115: error: 'eglGetProcAddress' was not declared in this
> scope
> egl/qegl.cpp: In function 'EGLSurface QEgl::createSurface(QPaintDevice*,
> EGLConfig, const QEglProperties*)':
> egl/qegl.cpp:683:16: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp:692:23: error: 'EGL_NO_SURFACE' was not declared in this scope
> egl/qegl.cpp:730:82: error: 'eglCreateWindowSurface' was not declared in
> this scope
> egl/qegl.cpp:732:82: error: 'eglCreatePixmapSurface' was not declared in
> this scope
> egl/qegl.cpp:734:106: error: 'eglGetError' was not declared in this scope
> egl/qegl.cpp: In function 'void QEgl::dumpAllConfigs()':
> egl/qegl.cpp:774:47: error: 'eglGetConfigs' was not declared in this scope
> egl/qegl.cpp:777:52: error: 'eglGetConfigs' was not declared in this scope
> egl/qegl.cpp: In function 'QString QEgl::extensions()':
> egl/qegl.cpp:787:56: error: 'EGL_EXTENSIONS' was not declared in this scope
> egl/qegl.cpp:787:70: error: 'eglQueryString' was not declared in this scope
> egl/qegl.cpp: In function 'bool QEgl::hasExtension(const char*)':
> egl/qegl.cpp:795:46: error: 'EGL_EXTENSIONS' was not declared in this scope
> egl/qegl.cpp:795:60: error: 'eglQueryString' was not declared in this scope
> egl/qegl.cpp: In member function 'int QEglContext::configAttrib(int) const':
> egl/qegl.cpp:576:1: warning: control reaches end of non-void function
> [-Wreturn-type]
> egl/qegl.cpp: In member function 'bool QEglContext::isValid() const':
> egl/qegl.cpp:119:1: warning: control reaches end of non-void function
> [-Wreturn-type]
> make[1]: *** [.obj/release-shared-emb-arm/qegl.o] Error 1
> make[1]: Leaving directory
> `/home/andre/work/connexionz/package-builder/build/qt-everywhere-opensource-
> src-4.8.4/src/gui' make: *** [sub-gui-make_default-ordered] Error 2
> 
> >From looking into the build a bit, it looks like QT_NO_EGL is defined which
> 
> means that the correct header files are not getting included. But I can't
> quite work out where that definition is being made.
> src/corelib/global/qconfig.h doesn't define it, neither does the
> mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf, or the build command line.
> 
> Any ideas what I've messed up here?

What does configure tell you? ... configure with -egl to enforce it.
(if you post the configure output, always add -v (verbose) to configure)


> 
> Regards,
> Andre



More information about the Interest mailing list