簡體   English   中英

使用Visual Studio 2012初始化openGL時遇到麻煩

[英]trouble initializing openGL with visual studio 2012

對於我的包括,我有以下

#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:\\程序文件(x86)\\ Microsoft Visual Studio 11.0 \\ vc \\ include \\ xutility 364 1 mp4

錯誤2錯誤C2039:'iterator_category':不是'`全局名稱空間'的成員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:\\程序文件(x86)\\ Microsoft Visual Studio 11.0 \\ vc \\ include \\ xutility 364 1 mp4

錯誤5錯誤C2868:'std :: iterator_traits <_Iter> :: iterator_category':使用聲明的語法不合法; 預期的合格名稱c:\\ program files(x86)\\ microsoft visual studio 11.0 \\ vc \\ include \\ xutility 364 1 mp4

...等等...

我不確定什么是xutility文件,或者為什么編譯器會抱怨它。 我高度懷疑這與我在VS 2012中設置openGL的方式有關,但我不確定。 有人可以發現我的包含項有問題嗎?

我將使用我的智力來調查您的其他代碼。 ;-P

你有這樣的東西:

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

並且在文件myheader.h您有一個類聲明-或也許是一個struct-但錯過了結尾的分號-或花括號不匹配。

或者,也許您有不匹配的#ifdef / #endif子句。

然后,編譯器在讀取標准C ++頭文件並噴出所有這些不可讀的錯誤時都會感到困惑。

根據經驗,include標頭應按從最標准到次標准的順序排列:

  1. 語言文件。
  2. 系統文件。
  3. 庫文件。
  4. 本地項目文件。

請記住,所包含的文件只是簡單地按文本串聯在一起,然后將結果匯總在一起。 因此,一個頭文件末尾的錯誤可能會觸發下一個頭文件的編譯器錯誤。

代替 -

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

只需使用-

#include <GL/GL.h>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM