我有这个简单的代码
#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’
有任何想法吗?
最佳答案
这是 glext.h
的一个错误。如果您查看该文件,您会看到它有一堆使用 GLenum
的定义,但 GLenum
未在该文件中的任何位置定义。因此,在包含 glext.h
之前,您需要包含一个定义 GLenum
的文件。最简单的方法是首先包含 gl.h
而不是第二个:
#include <stdio.h>
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
关于c - 包含 glext.h 时在 xcode 中编译 c 代码的奇怪问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6146896/