C++ 如何获取总账库/标题? #包括 #包括 #包括

C++ 如何获取总账库/标题? #包括 #包括 #包括,c++,opengl,C++,Opengl,这是一个示例,但是在哪里可以获得总账标题?什么操作系统 在Ubuntu上,我有 #include <gl\gl.h> #include <gl\glu.h> #include <gl\glaux.h> 但不是a)资本化和b)向前/向后斜杠的区别。您的示例在使用反斜杠时可能是错误的。在Visual Studio中: $ dpkg -S /usr/include/GL/gl.h mesa-common-dev: /usr/include/GL/gl.h $

这是一个示例,但是在哪里可以获得总账标题?

什么操作系统

在Ubuntu上,我有

#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>
但不是a)资本化和b)向前/向后斜杠的区别。您的示例在使用反斜杠时可能是错误的。

在Visual Studio中:

$ dpkg -S /usr/include/GL/gl.h 
mesa-common-dev: /usr/include/GL/gl.h
$ 
//OpenGL
#pragma注释(lib,“opengl32”)
#pragma注释(lib,“glu32”)
#包括
#包括

标题位于SDK中:C:\Program Files\Microsoft SDK\Windows\v7.0A\Include\gl

如果您在Windows上,则它们与平台SDK(或Visual Studio)一起安装。但是,头文件仅与OpenGL 1.1兼容。您需要为新功能创建函数指针,以便在以后的版本中使用。你能澄清一下你想使用的OpenGL版本吗。

DebianLinux(例如Ubuntu) 窗户 找到VisualStudio文件夹中放置库和头文件的位置,下载库文件并将其复制到lib文件夹,将头文件复制到头文件。然后将dll文件复制到system32。然后您的代码将100%运行

还有Windows:对于所有这些内容,您只需下载
glut32.lib
glut.h
glut32.dll
在Windows上,您需要包含OpenGL1.1支持的
gl.h
标题以及针对OpenGL32.lib的链接。两者都是一个整体的一部分。此外,您可能需要以下标题,您可以从中获得这些标题

  • -OpenGL 1.2及以上版本的兼容性配置文件和扩展接口
  • -OpenGL核心配置文件和ARB扩展接口,如OpenGL 4.3规范附录G.2所述。不包括仅在兼容性配置文件中找到的接口
  • -GLX 1.3及以上API和GLX扩展接口
  • -WGL扩展接口
Linux 在Linux上,您需要链接libGL.so,它通常是libGL.so.1的符号链接,而libGL.so.1是图形驱动程序中实际库/驱动程序的符号链接。例如,在我的系统上,实际驱动程序库被命名为LBGL.S.25.53,它是我使用的英伟达驱动程序的版本号。您还需要包括
gl.h
标题,它通常是Mesa或Xorg包的一部分。同样,您可能需要来自的
glext.h
glxext.h
glxext.h
保存GLX扩展,相当于Windows上的
wglext.h

如果要使用OpenGL 3.x或OpenGL 4.x功能,而不使用已移动到
GL\u ARB\u兼容性
扩展中的功能,请使用注册表网页中新的
gl3.h
标题。它取代了
gl.h
glext.h
(只要您只需要核心功能)


最后但并非最不重要的一点,
glaux.h
不是与OpenGL关联的头文件。我想你已经读过可怕的NEHE教程了,然后就这么做了。Glaux是一个非常过时的Win32库(1996),用于加载未压缩位图。使用更好的工具,比如libPNG,它也支持alpha通道。

上面关于linux的一些答案要么不完整,要么完全错误

例如,/usr/include/GL/GL.h不是mesa common dev的一部分,或者没有 已经有很多年了

无论如何,对于一个更新的答案,这两个包很重要:

glu.h是glu本身的一部分:

sudo apt-get update
OpenGL: sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
梅萨显然要大得多。它的标题是 一个位变量,我想,取决于给定的标志 到介子,但通常应包括:

GL/glu.h
GL/glu_mangle.h
希望这能帮助任何人找到这个问题的答案 未来,;例如,编译dosbox需要这样做
到SDL opengl。

debian/ubuntu/其他衍生工具!=Linux这个答案已经有10年历史了,但仍然对我有帮助(Ubuntu LTS)。@CoatedMoose只是不说什么不是,我们不需要知道什么不是,有一天你能告诉我它到底是什么吗?注意:上面的Windows SDK版本是Windows 7。只需查看Windows SDK的最新版本(现在是8.1,很快将是10)。检查文档中的向后和向前兼容性。MacOS呢?在Windows 7 x64中,由于某种原因,我不知道包括
gl.h
glu.h
都不起作用,只包括
Windows.h
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