Closed yurivict closed 5 years ago
You need this library: https://sourceforge.net/projects/glee/
@stefantalpalaru Thank you for the answer.
libglee
has some symbols, ex. GLeeEnabled
, but not other symbols. For example pglCreateShaderObjectARB
is still undefined.
Try this patch, although the problem it fixes should manifest at compile time, not link time: https://github.com/stefantalpalaru/gentoo-overlay/commit/e2b3249a2e67dd8ec58eb6ed45847095a1f011a0#diff-46b6606a27533f9f54313ab2603da357
I tried this patch, but there are still errors.
glx.o: In function `DisplayOutput::CUnixGL::Initialize(unsigned int, unsigned int, bool)':
glx.cpp:(.text+0x57f): undefined reference to `pglXSwapIntervalSGI'
glx.o: In function `DisplayOutput::CUnixGL::toggleVSync()':
glx.cpp:(.text+0xa4a): undefined reference to `pglXSwapIntervalSGI'
ShaderGL.o: In function `DisplayOutput::CShaderGL::~CShaderGL()':
ShaderGL.cpp:(.text+0x4a): undefined reference to `pglDeleteObjectARB'
ShaderGL.cpp:(.text+0x57): undefined reference to `pglDeleteObjectARB'
ShaderGL.cpp:(.text+0x64): undefined reference to `pglDeleteObjectARB'
ShaderGL.o: In function `DisplayOutput::CShaderGL::~CShaderGL()':
ShaderGL.cpp:(.text+0xaa): undefined reference to `pglDeleteObjectARB'
ShaderGL.cpp:(.text+0xb7): undefined reference to `pglDeleteObjectARB'
What's the linking part of the make
output? Just to make sure you're linking against libGL.so.
Alternatively, scroll up on that last link to see how I disabled V-sync because some Mesa drivers don't have that extension.
libtool: link: c++ -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include/libgtop-2.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/lua53 -I/usr/local/include -I/usr/local/include -I/usr/local/include/libpng16 -I/usr/local/include/lua53 -I/usr/local/include -D_THREAD_SAFE -pthread -D__STDC_CONSTANT_MACROS -Wno-write-strings -DHAVE_AVC_VID2=1 -O2 -pipe -fno-omit-frame-pointer -DLINUX_GNU -I/usr/local/include/libavcodec -I/usr/ports/graphics/electricsheep/work/electricsheep-4949c31/client_generic/DisplayOutput/OpenGL -DSHAREDIR=\"/usr/local/share/electricsheep\" -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -fno-omit-frame-pointer -isystem /usr/local/include -fstack-protector -o electricsheep Player.o main.o Voting.o Hud.o Upload.o Download.o Networking.o LoadDDS.o Image.o RendererGL.o glx.o ShaderGL.o TextureFlatGL.o wgl.o FontGL.o mgl.o Shader.o Texture.o Font.o TextureFlat.o Renderer.o LoadPNG.o DisplayOutput.o tinyxmlparser.o tinyxml.o tinystr.o tinyxmlerror.o diriterator.o storage.o luastorage.o ContentDecoder.o SheepUploader.o ContentDownloader.o SheepGenerator.o SheepDownloader.o Sheep.o Shepherd.o LuaState.o Common.o AlignedBuffer.o isaac.o pool.o Log.o Rect.o luaxml.o Exception.o md5.o -L/usr/local/lib -lavcodec -lavformat -lswscale -lavutil -llua-5.3 -lm -lGLee -lcurl -lpng16 -lz -lgtop-2.0 -lglib-2.0 -lintl -lXrender -lX11 -lrt -lGL -lglut -ltinyxml -lboost_system -lboost_filesystem -lboost_thread -pthread
That looks OK. Go ahead and apply the other patch.
The other patch didn't make any difference either.
It appears that symbols like pglCreateProgramObjectARB
should come from libGLee.so, but it doesn't provide them.
The problem was that GLee is also bundled, and the bundled header declares pglXX
symbols, but never defines them. Bundling anything is a very bad idea.
I'm trying to restore the FreeBSD port, but it fails with these link messages:
lua-related messages likely mean that lua libs aren't supplied. But where do
pglUniform1ivARB
,GLeeEnabled
,pglXSwapIntervalSGI
come from?