0

对于我的包含,我有以下内容

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <cmath>
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>

然而,当我尝试编译时,我得到了一大堆错误,与我正在使用的任何源代码无关。

错误 1 ​​错误 C2825: '_Iter': 必须是类或命名空间后跟 '::' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 364 1 mp4

错误 2 错误 C2039: 'iterator_category' : is not a member of '`global namespace'' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 364 1 mp4

错误 3 错误 C2146:语法错误:缺少 ';' 在标识符“iterator_category”之前 c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 364 1 mp4

错误 4 错误 C2602:“std::iterator_traits<_Iter>::iterator_category”不是“std::iterator_traits<_Iter>”c:\program files (x86)\microsoft visual studio 11.0\vc 基类的成员\include\xutility 364 1 mp4

错误 5 错误 C2868: 'std::iterator_traits<_Iter>::iterator_category' : using-declaration 的非法语法;预期的限定名称 c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 364 1 mp4

...ETC...

我不确定 xutility 文件是什么,或者编译器为什么抱怨它。我高度怀疑这与我使用 VS 2012 设置 openGL 的方式有关,但我不确定。谁能发现我的包含问题?

4

2 回答 2

0

代替 -

#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>

只需使用 -

#include <GL/GL.h>
于 2012-12-11T21:30:03.447 回答
0

我将使用我的精神力量来查看您的其他代码。;-P

你有这样的东西:

#include "myheader.h"
#include <iostream>

在文件中myheader.h你有一个类声明 - 或者可能是一个结构 - 但你错过了结束分号 - 或者大括号不匹配。

或者也许你有不匹配的#ifdef/#endif子句。

然后编译器在读取标准 C++ 头文件并吐出所有这些不可读的错误时都会感到困惑。

根据经验,包含标头应按从最标准到不太标准的顺序排列:

  1. 语言文件。
  2. 系统文件。
  3. 库文件。
  4. 本地项目文件。

请记住,包含的文件只是以文本方式连接起来,然后将结果全部编译在一起。因此,一个头文件末尾的错误可能会触发下一个头文件中的编译器错误。

于 2012-12-11T21:44:54.743 回答