nigels-com / glew

The OpenGL Extension Wrangler Library
Other
2.58k stars 609 forks source link

Linux OSMesa cmake: undefined functions when make #324

Closed zxx2020 closed 2 years ago

zxx2020 commented 2 years ago

I'm trying to build glew for osmesa, but at the last step of cd build cmake ./cmake make -j4

the make step reports undefined reference to multiple glX functions. I get these errors whether I use 'make -j4 GLEW_OSMESA=1' or just 'make -j4'. Also is that the correct syntax to set GLEW_OSMESA for make. The readme lists target and variables, but doesn't give an example of how to set them when calling make.

username@machineName:~/glew/build$ make -j4 GLEW_OSMESA=1 [ 25%] Built target glew [ 50%] Built target glew_s [ 62%] Linking C executable bin/visualinfo [ 75%] Linking C executable bin/glewinfo /usr/bin/ld: CMakeFiles/visualinfo.dir/home/zoeubuntu/glew/src/visualinfo.c.o: in function CreateContext': visualinfo.c:(.text+0x11ce): undefined reference toglXQueryExtension' /usr/bin/ld: visualinfo.c:(.text+0x11ec): undefined reference to glXChooseVisual' /usr/bin/ld: visualinfo.c:(.text+0x120b): undefined reference toglXCreateContext' /usr/bin/ld: visualinfo.c:(.text+0x12a9): undefined reference to glXMakeCurrent' /usr/bin/ld: CMakeFiles/visualinfo.dir/home/zoeubuntu/glew/src/visualinfo.c.o: in functionDestroyContext': visualinfo.c:(.text+0x12fa): undefined reference to glXDestroyContext' /usr/bin/ld: CMakeFiles/visualinfo.dir/home/zoeubuntu/glew/src/visualinfo.c.o: in functionmain': visualinfo.c:(.text.startup+0x158): undefined reference to glXQueryExtensionsString' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference toglXGetProcAddressARB' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference to glXQueryVersion' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference toglXGetClientString' collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/visualinfo.dir/build.make:94: bin/visualinfo] Error 1 make[1]: [CMakeFiles/Makefile2:110: CMakeFiles/visualinfo.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... /usr/bin/ld: CMakeFiles/glewinfo.dir/home/zoeubuntu/glew/src/glewinfo.c.o: in function glewCreateContext': glewinfo.c:(.text+0x2136a): undefined reference toglXQueryExtension' /usr/bin/ld: glewinfo.c:(.text+0x2141a): undefined reference to glXCreateContext' /usr/bin/ld: glewinfo.c:(.text+0x214d6): undefined reference toglXMakeCurrent' /usr/bin/ld: glewinfo.c:(.text+0x21688): undefined reference to glXMakeCurrent' /usr/bin/ld: glewinfo.c:(.text+0x2169f): undefined reference toglXDestroyContext' /usr/bin/ld: glewinfo.c:(.text+0x216c7): undefined reference to glXChooseVisual' /usr/bin/ld: CMakeFiles/glewinfo.dir/home/zoeubuntu/glew/src/glewinfo.c.o: in functionglewDestroyContext': glewinfo.c:(.text+0x21731): undefined reference to glXDestroyContext' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference toglXGetProcAddressARB' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference to glXQueryVersion' /usr/bin/ld: lib/libGLEW.so.2.2.0: undefined reference toglXGetClientString' collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/glewinfo.dir/build.make:94: bin/glewinfo] Error 1 make[1]: [CMakeFiles/Makefile2:137: CMakeFiles/glewinfo.dir/all] Error 2 make: [Makefile:130: all] Error 2

nigels-com commented 2 years ago

This seems to work on Linux:

$ make SYSTEM=linux-osmesa
nigels-com commented 2 years ago

cmake does also look fine:

$ cmake .. -DGLEW_OSMESA=Y
-- Configuring done
-- Generating done
-- Build files have been written to: 
$ make
Scanning dependencies of target glew
[ 12%] Building C object CMakeFiles/glew.dir/home/nigels/dev/glew/src/glew.c.o
[ 25%] Linking C shared library lib/libGLEW.so
[ 25%] Built target glew
Scanning dependencies of target visualinfo
[ 37%] Building C object CMakeFiles/visualinfo.dir/home/nigels/dev/glew/src/visualinfo.c.o
[ 50%] Linking C executable bin/visualinfo
[ 50%] Built target visualinfo
Scanning dependencies of target glewinfo
[ 62%] Building C object CMakeFiles/glewinfo.dir/home/nigels/dev/glew/src/glewinfo.c.o
[ 75%] Linking C executable bin/glewinfo
[ 75%] Built target glewinfo
Scanning dependencies of target glew_s
[ 87%] Building C object CMakeFiles/glew_s.dir/home/nigels/dev/glew/src/glew.c.o
[100%] Linking C static library lib/libGLEW.a
[100%] Built target glew_s