Trouble compiling when using ogl-es branch of Irrlicht

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
sunnystormy
Posts: 105
Joined: Mon Jun 02, 2014 2:32 am
Location: Washington, D.C.
Contact:

Trouble compiling when using ogl-es branch of Irrlicht

Post by sunnystormy »

I tried compiling a test program that utilized the ogl-es branch, and this is the error that appeared in my console:

Code: Select all

../../Engine/irrlicht/lib/Linux/libIrrlicht.a(COGLESExtensionHandler.o): In function `irr::video::COGLES1ExtensionHandler::initExtensions()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:262: undefined reference to `eglGetProcAddress'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:263: undefined reference to `eglGetProcAddress'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:264: undefined reference to `eglGetProcAddress'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:265: undefined reference to `eglGetProcAddress'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:266: undefined reference to `eglGetProcAddress'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(COGLESExtensionHandler.o):/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/COGLESExtensionHandler.cpp:267: more undefined references to `eglGetProcAddress' follow
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::initialize(irr::SIrrlichtCreationParameters const&, irr::video::SExposedVideoData const&)':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:52: undefined reference to `eglGetDisplay'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:70: undefined reference to `eglInitialize'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::terminate()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:92: undefined reference to `eglMakeCurrent'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:94: undefined reference to `eglTerminate'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::generateSurface()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:164: undefined reference to `eglChooseConfig'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:253: undefined reference to `eglCreateWindowSurface'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:256: undefined reference to `eglCreateWindowSurface'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:263: undefined reference to `eglBindAPI'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:267: undefined reference to `eglSwapInterval'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::destroySurface()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:278: undefined reference to `eglMakeCurrent'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:280: undefined reference to `eglDestroySurface'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::generateContext()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:314: undefined reference to `eglCreateContext'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::destroyContext()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:333: undefined reference to `eglMakeCurrent'
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:334: undefined reference to `eglDestroyContext'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::activateContext(irr::video::SExposedVideoData const&)':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:341: undefined reference to `eglMakeCurrent'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::swapBuffers()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:358: undefined reference to `eglSwapBuffers'
../../Engine/irrlicht/lib/Linux/libIrrlicht.a(CEGLManager.o): In function `irr::video::CEGLManager::testEGLError()':
/home/michael/Code/CPlusPlus/Amanita/Engine/irrlicht/source/Irrlicht/CEGLManager.cpp:364: undefined reference to `eglGetError'
collect2: error: ld returned 1 exit status
make: *** [Makefile:12: make] Error 1
I wanted to some help in figuring this one out. I'm only using the OpenGL renderer in my code, yet, am getting a lot of errors for EGL. Thanks! :)

--EDIT:

I'm looking at the Makefile for Irrlicht, and I'm not seeing any includes or library paths for EGL, GLES, or GLES2... could this be the problem?
My blog: http://fsgdp.wordpress.com "The Free Software Game Development Pipeline"
CuteAlien
Admin
Posts: 9628
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Trouble compiling when using ogl-es branch of Irrlicht

Post by CuteAlien »

Hm, not sure why you want to use the ogl-es branch without using OpenGL ES.
That's kinda the feature why this branch exists :-)
You could disable it in the IrrCompileConfig.h by commenting out _IRR_COMPILE_WITH_OGLES1_ and _IRR_COMPILE_WITH_OGLES2_. Or also by passing -DNO_IRR_COMPILE_WITH_OGLES1_ -DNO_IRR_COMPILE_WITH_OGLES2_ to the compiler (which disables those defines). But not sure if it's tested much, as this branch really is made for ES, so people might not have used it much with that disabled.

There's no paths on Linux because in Linux libraries tend to be installed in default paths, so includes are usually found.
The linking happens not in the library Makefile but in the Makefiles of the examples (or your project).
There you can have LDFLAGS like: -lGL -lEGL -lGLESv1_CM -lGLESv2
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
sunnystormy
Posts: 105
Joined: Mon Jun 02, 2014 2:32 am
Location: Washington, D.C.
Contact:

Re: Trouble compiling when using ogl-es branch of Irrlicht

Post by sunnystormy »

Good point! :)

I was really just trying to get it to compile because I'm working on a project that will allow users to tap into OpenGL or OpenGL ES for the graphics backend.

Thanks for your help!
My blog: http://fsgdp.wordpress.com "The Free Software Game Development Pipeline"
Post Reply