我有这个简单的代码
#include <stdio.h>
#include <OpenGL/glext.h>
#include <OpenGL/gl.h>
int main (int argc, const char * argv[])
{
printf("Hello, World!\n");
return 0;
}
如果我用“glext.h”注释掉这一行,它会编译并在xcode 4中正常运行,如果我取消注释该行,我会得到345个错误,其中大部分'预期*在*'之前... 到底是怎么回事?! gl.h和glext.h都在OpenGL框架内,但无论我是否包含它,我都会得到同样的错误。我尝试了GCC 4.2以及LLVM GCC 4.2和LLVM(在这种情况下是21个语义和解析错误)。
我确信我缺乏使用C的经验导致这一点但我很惊讶gl.h没有问题,但glext.h有。
即使我尝试通过gcc从命令行编译,我也会得到很多
/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:3137: error: expected ‘)’ before ‘const’
有什么想法吗?
答案 0 :(得分:3)
这是glext.h
的错误。如果查看该文件,您会看到它有一堆使用GLenum
的定义,但GLenum
未在该文件中的任何位置定义。因此,在包含glext.h
之前,您需要包含一个定义GLenum
的文件。最简单的方法是先包含gl.h
而不是第二个:
#include <stdio.h>
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
答案 1 :(得分:2)
切换这两行:
#include <OpenGL/glext.h>
#include <OpenGL/gl.h>
它应该有用。