没有“glu.h”和“windows.h”,GLFW 无法编译

Posted

技术标签:

【中文标题】没有“glu.h”和“windows.h”,GLFW 无法编译【英文标题】:GLFW cannot compile without "glu.h" and "windows.h" 【发布时间】:2018-10-31 02:21:30 【问题描述】:

我想创建一个游戏引擎,但是如果没有<GL/glu.h><windows.h>,我的图形子系统将无法编译。

    仅使用<GLFW/glfw3.h> 编译Graphics.cpp,不使用两个标头将在Graphics.cpp'gluErrorString' was not declared in this scope 上打印错误。 编译 Graphics.cpp<GLFW/glfw3.h> AND '',没有 <windows.h> 将在 glu.hc:\mingw\include\gl\glu.h|225|error: 'WINGDIAPI' does not name a type 上打印错误。我发现的一些解决方法是在Graphics.cpp 中也包含<windows.h>。 用<GLFW/glfw3.h> AND '' AND <windows.h> 编译Graphics.cpp 不会返回错误。问题是这个程序不是跨平台的不是吗?

如GLFW build guideIncluding the GLFW header file 部分所述;不需要包含windows.h 和OpenGL 头文件,因为GLFW 头文件已经包含了这些。因此,我正在尝试遵循指南或最佳实践,并尝试使我的游戏引擎跨平台。

以下是我在 CodeBlock 中的链接器选项,

-lglfw3
-lOpenGL32
-lglu32
-lgdi32

【问题讨论】:

GLU 已过时。它不再是现代 OpenGL 的一部分。这就是 GLFW 不包含它的原因。 "如果没有 ,我的图形子系统将无法编译。" 那是因为您的图形子系统正在 使用 i> 来自这些标题的东西。这不是 GLFW 的错。 【参考方案1】:

原来我只需要在 #defines 部分的 CodeBlock 编译器设置中写入 GLFW_INCLUDE_GLU

来源:Building GLFW program, by Sugih Jamin

【讨论】:

以上是关于没有“glu.h”和“windows.h”,GLFW 无法编译的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL纹理不显示

在openGL中使用箭头键旋转参考系

我如何摆脱 glu.h 中的这些编译器错误?

openGL相关的库

vs2017使用OpenGL的方法

gl.h报错