So I am fairly new to linux and trying to compile an openGL project which uses GLEW and GLFW in CodeBlocks with GCC++.
As shown below I have my linker flags set to -lglfw -lGLEW -lGL and have tried various permutations involving different orders with and without -lGLU.
These all result in the linker error
cannot find -lGL
or the full build log
g++ -L/usr/lib64 -L/usr/lib -o Voxel .objs/Block.o ... other object files ... .objs/World.o -lglfw -lGLEW -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/5.1.1/../../../libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
I found this similar question (and many other forums) and attempted the suggested actions which seem to hint at either a different order of flags and/or a bad symlink (which I don't know how to/if I need to remove and re add).
The command below confirms I have libGL installed already.
dnf install libGL
I have also tried
dnf install mesa-*
and installed some extra packages, to no avail.
Performing
locate libGL
gives me the following
/usr/lib/libGL.la
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2.0
/usr/lib/libGL.so.358.16
/usr/lib/libGLESv1_CM.so
/usr/lib/libGLESv1_CM.so.1
/usr/lib/libGLESv1_CM.so.358.16
/usr/lib/libGLESv2.so
/usr/lib/libGLESv2.so.2
/usr/lib/libGLESv2.so.358.16
/usr/lib/libGLdispatch.so.0
/usr/lib64/libGL.la
/usr/lib64/libGL.so
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.358.16
/usr/lib64/libGLESv1_CM.so
/usr/lib64/libGLESv1_CM.so.1
/usr/lib64/libGLESv1_CM.so.358.16
/usr/lib64/libGLESv2.so
/usr/lib64/libGLESv2.so.2
/usr/lib64/libGLESv2.so.358.16
/usr/lib64/libGLEW.so
/usr/lib64/libGLEW.so.1.10
/usr/lib64/libGLEW.so.1.10.0
/usr/lib64/libGLEWmx.so
/usr/lib64/libGLEWmx.so.1.10
/usr/lib64/libGLEWmx.so.1.10.0
/usr/lib64/libGLU.so
/usr/lib64/libGLU.so.1
/usr/lib64/libGLU.so.1.3.1
/usr/lib64/libGLdispatch.so.0
/usr/share/doc/libGLEW
/usr/share/doc/libGLEWmx
/usr/share/doc/libGLEW/LICENSE.txt
/usr/share/doc/libGLEWmx/LICENSE.txt
/usr/share/licenses/mesa-libGL
/usr/share/licenses/mesa-libGLES
/usr/share/licenses/mesa-libGL/COPYING
/usr/share/licenses/mesa-libGLES/COPYING
/var/cache/PackageKit/metadata/updates/packages/mesa-libGL-11.0.6-1.20151122.fc23.x86_64.rpm
/var/cache/PackageKit/metadata/updates/packages/mesa-libGLES-11.0.6-1.20151122.fc23.x86_64.rpm
I am running Fedora 23 and have an nVidia GeForce GTX 750Ti with the proprietary nVidia drivers installed.
In short how do I link OpenGL, GLFW and GLEW with GCC++ on Linux?