meekys / cam_overlay

MIT License
7 stars 3 forks source link

Cannot compile on raspberry pi due to conflict between gl and gles2 #27

Open XPModder opened 3 years ago

XPModder commented 3 years ago

Hi, I cannot compile the cpp branch on a raspberry pi 3b due to a conflict between glext.h and gl2.h. Running cmake works, but when I try to run make, it gets to 8% and then errors out, due to some typedefs being duplicated between glext.h and gl2.h

The problem seems to be caused by using both gl.h and gl2.h

Here is the output of make:

[  5%] Built target core
[  8%] Building CXX object src/Gl/CMakeFiles/gl.dir/src/Buffer.cpp.o
In file included from /home/pi/cam_overlay/src/Gl/include/Gl/GlCommon.hpp:11:0,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/Buffer.hpp:3,
                 from /home/pi/cam_overlay/src/Gl/src/Buffer.cpp:1:
/usr/include/GLES2/gl2.h:73:25: error: conflicting declaration ‘typedef khronos_ssize_t GLsizeiptr’
 typedef khronos_ssize_t GLsizeiptr;
                         ^~~~~~~~~~
In file included from /usr/include/GL/gl.h:2055:0,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/GlCommon.hpp:9,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/Buffer.hpp:3,
                 from /home/pi/cam_overlay/src/Gl/src/Buffer.cpp:1:
/usr/include/GL/glext.h:468:19: note: previous declaration as ‘typedef ptrdiff_t GLsizeiptr’
 typedef ptrdiff_t GLsizeiptr;
                   ^~~~~~~~~~
In file included from /home/pi/cam_overlay/src/Gl/include/Gl/GlCommon.hpp:11:0,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/Buffer.hpp:3,
                 from /home/pi/cam_overlay/src/Gl/src/Buffer.cpp:1:
/usr/include/GLES2/gl2.h:74:26: error: conflicting declaration ‘typedef khronos_intptr_t GLintptr’
 typedef khronos_intptr_t GLintptr;
                          ^~~~~~~~
In file included from /usr/include/GL/gl.h:2055:0,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/GlCommon.hpp:9,
                 from /home/pi/cam_overlay/src/Gl/include/Gl/Buffer.hpp:3,
                 from /home/pi/cam_overlay/src/Gl/src/Buffer.cpp:1:
/usr/include/GL/glext.h:469:19: note: previous declaration as ‘typedef ptrdiff_t GLintptr’
 typedef ptrdiff_t GLintptr;
                   ^~~~~~~~
src/Gl/CMakeFiles/gl.dir/build.make:62: recipe for target 'src/Gl/CMakeFiles/gl.dir/src/Buffer.cpp.o' failed
make[2]: *** [src/Gl/CMakeFiles/gl.dir/src/Buffer.cpp.o] Error 1
CMakeFiles/Makefile2:176: recipe for target 'src/Gl/CMakeFiles/gl.dir/all' failed
make[1]: *** [src/Gl/CMakeFiles/gl.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I am running crankshaft-ng with everything up to date. I just did an apt-get update & apt-get upgrade a few hours ago.

I tried removing one or the other of the files that cause the errors, but than it obviously doesn't work, because it can't find the file...