2009-01-10 40 views
17

當編譯使用的OpenGL與Visual C++文件VC++編譯錯誤,當我嘗試包括gl.h頭文件,我得到約150無益的編譯錯誤:包括gl.h

錯誤C2144:語法錯誤: 'void'之前應該是';'

錯誤C4430:缺少類型說明符 - 假定爲int。注意:C++不支持default-int

錯誤C2146:語法錯誤:缺少';'前標識「glAccum」

回答

43

只是#include <windows.h>之前<gl/gl.h><gl/glu.h>。 某些類型需要它,例如WINGDIAPIAPIENTRY

+2

如何在不包含Windows.h的情況下做到這一點? – mr5 2013-03-01 13:12:57

1

聽起來你包括C++項目中C頭。試試你的封閉裏面包含聲明:

extern "C" { 
#include "gl.h" 
} 
-1

第一種可能性要考慮的是編譯器的消息實際上是。當然這些錯誤信息中包含行號,所以你看過有問題的行和其中的一些行,試圖找出可能是什麼原因?

在你引用的那些之前是否還有其他消息? (例如,缺少頭文件?)總是從第一個頭文件開始尋址編譯器消息;後來的那些有時只是由此引起的副作用。

你可以在一個簡單的項目中重現問題嗎?只需將#include <gl.h>寫入其他空文件並嘗試編譯它就足夠了嗎?或者是否有更多關於導致錯誤發生的源代碼?

請記住,你是在這裏訪問您的代碼;我上面提出的問題是你需要考慮的事情,因爲你不能總是讓別人爲你調試你的代碼。

2

如果你使用visual C++,確保你已經有了opengl庫。 使用#include <windows.h>#include <GL/gl.h> ,如果你在程序中使用#include <glut.h>確保你不會打字這樣 #include <GL/glut.h>,如果你鍵入比如,它可以是錯誤「GL/glut.h沒有這樣的文件或目錄」