#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
这是一个示例,但是从哪里获取GL标头?
Answers:
在Windows上,您需要包含gl.h
OpenGL 1.1支持的标头并链接到OpenGL32.lib。两者都是Windows SDK的一部分。此外,您可能需要以下标头,这些标头可以从http://www.opengl.org/registry获得。
<GL/glext.h>
-OpenGL 1.2及更高版本的兼容性配置文件和扩展接口。<GL/glcorearb.h>
-OpenGL核心配置文件和ARB扩展接口,如OpenGL 4.3规范的附录G.2中所述。不包括仅在兼容性配置文件中找到的接口。<GL/glxext.h>
-GLX 1.3及更高版本的API和GLX扩展接口。<GL/wglext.h>
-WGL扩展接口。在Linux上,您需要链接libGL.so,它通常是libGL.so.1的符号链接,而libGL.so.1却是实际的库/驱动程序的符号链接,后者是图形驱动程序的一部分。例如,在我的系统上,实际的驱动程序库名为libGL.so.256.53,这是我使用的nvidia驱动程序的版本号。您还需要包括gl.h
标头,该标头通常是Mesa或Xorg软件包的一部分。同样,你可能需要glext.h
和glxext.h
从http://www.opengl.org/registry。glxext.h
拥有GLX扩展名,等同wglext.h
于Windows。
如果要使用OpenGL 3.x或OpenGL 4.x功能而不使用已移至GL_ARB_compatibility
扩展名中的功能,请使用gl3.h
注册表网页中的新标头。它gl.h
也替换并且glext.h
(只要您只需要核心功能)。
最后但并非最不重要的glaux.h
一点是,它不是与OpenGL相关联的标头。我认为您已经阅读了可怕的NEHE教程,并随手进行了。Glaux是一个非常过时的Win32库(1996),用于加载未压缩的位图。使用更好的东西,例如libPNG,它也支持alpha通道。
gl.h
和glu.h
不工作,只包括windows.h
sudo apt-get update
OpenGL: sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
找到您的Visual Studio文件夹,在其中放置库以及头文件,下载lib文件并将其复制到lib文件夹,并将头文件复制到头。然后将dll文件复制到system32。然后您的代码将100%运行。
另外视窗:对于那些包括你只需要下载glut32.lib
,glut.h
,glut32.dll
。
上面关于Linux的一些答案要么不完整,要么完全错误。
例如,/ usr / include / GL / gl.h不是mesa-common-dev的一部分,或者已经存在很多年了。
无论如何,对于最新的答案,这两个软件包很重要:
https://mesa.freedesktop.org/archive/mesa-20.1.2.tar.xz
ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.1.tar.xz
glu.h是glu本身的一部分:
GL/glu.h
GL/glu_mangle.h
台面明显更大。我想它的头是个位变量,我想这取决于给介子的标志,但是通常应该包括这些标志:
KHR/khrplatform.h
EGL/eglplatform.h
EGL/eglext.h
EGL/eglextchromium.h
EGL/eglmesaext.h
EGL/egl.h
vulkan/vulkan_intel.h
gbm.h
GLES3/gl31.h
GLES3/gl3ext.h
GLES3/gl3.h
GLES3/gl32.h
GLES3/gl3platform.h
xa_composite.h
xa_tracker.h
xa_context.h
GLES2/gl2.h
GLES2/gl2platform.h
GLES2/gl2ext.h
GLES/gl.h
GLES/glplatform.h
GLES/glext.h
GLES/egl.h
GL/gl.h
GL/glx.h
GL/osmesa.h
GL/internal
GL/internal/dri_interface.h
GL/glcorearb.h
GL/glxext.h
GL/glext.h
希望以后能帮助任何人找到答案的问题;例如,由于SDL opengl,编译dosbox需要此功能。