包含gl.h时VC ++编译错误

时间:2009-01-10 02:24:14

标签: visual-c++ opengl

编译一个使用OpenGL和Visual C ++的文件,当我尝试包含gl.h头文件时,我得到了大约150个无用的编译错误:

错误C2144:语法错误:'void'前面应加';'

错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int

错误C2146:语法错误:缺少';'在标识符'glAccum'之前

4 个答案:

答案 0 :(得分:45)

#include <windows.h><gl/gl.h>之前的<gl/glu.h>。 某些类型需要它,例如WINGDIAPIAPIENTRY

答案 1 :(得分:2)

如果您使用visual c ++,请确保您已经拥有opengl库。 在#include <windows.h>之前使用#include <GL/gl.h> 如果你在程序中使用#include <glut.h>,请确保你不是这样的 #include <GL/glut.h>,如果你输入的类型可能是错误“GL / glut.h没有这样的文件或目录”

答案 2 :(得分:1)

听起来你在C ++项目中包含一个C头。尝试将include语句包含在内:

extern "C" {
#include "gl.h"
}

答案 3 :(得分:-1)

首先要考虑的是编译器的消息实际上是正确的。当然,这些错误消息中包含行号,所以您是否查看了有问题的行以及它们之前的一些行,以尝试确定可能是什么原因?

在您引用的消息之前是否还有其他消息? (例如,缺少标题?)始终从第一个开始寻址编译器消息;后来的有时只是由此造成的副作用。

你能在一个简单的项目中重现这个问题吗?只是在一个空文件中写#include <gl.h>并尝试编译它就足够了吗?或者是否有更多关于导致错误发生的源代码?

请记住这里的可以访问你的代码;我上面提到的问题是你需要考虑的各种事情,因为你不能总是让其他人为你调试你的代码。