编译一个使用OpenGL和Visual C ++的文件,当我尝试包含gl.h头文件时,我得到了大约150个无用的编译错误:
错误C2144:语法错误:'void'前面应加';'
错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int
错误C2146:语法错误:缺少';'在标识符'glAccum'之前
等
答案 0 :(得分:45)
#include <windows.h>
或<gl/gl.h>
之前的<gl/glu.h>
。
某些类型需要它,例如WINGDIAPI
和APIENTRY
。
答案 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>
并尝试编译它就足够了吗?或者是否有更多关于导致错误发生的源代码?
请记住你这里的可以访问你的代码;我上面提到的问题是你需要考虑的各种事情,因为你不能总是让其他人为你调试你的代码。