OpenGL SuperBible header problem
OpenGL SuperBible header problem
最近我给自己买了OpenGL SuperBible第5版。当我读到关于如何正确设置一切的第一部分时,我遇到了一些问题,谷歌和其他StackOverflow问题都无法回答。
我想说清楚,我使用Visual Studio 2010,一切都正确链接。
我已经从官方OpenGL Superbible网站下载了库和头文件。
因此,当我编写第一个名为Triangle.cpp的程序并尝试编译它时,它给出了以下错误:
1>------ Build started: Project: OpenGL, Configuration: Debug Win32 ------
1>Build started 7/19/2011 9:21:27 PM.
1>InitializeBuildStatus:
1> Touching "DebugOpenGL.unsuccessfulbuild".
1>ClCompile:
1> Triangle.cpp
1>c:sb5srcgltoolsincludeglbatch.h(77): error C2061: syntax error : identifier 'GLenum'
1>c:sb5srcgltoolsincludeglbatch.h(86): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludeglbatch.h(89): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(90): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(91): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(92): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(100): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(103): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(106): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludeglbatch.h(109): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludeglbatch.h(110): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludeglbatch.h(113): error C2146: syntax error : missing ';' before identifier 'primitiveType'
1>c:sb5srcgltoolsincludeglbatch.h(113): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(113): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(115): error C2146: syntax error : missing ';' before identifier 'uiVertexArray'
1>c:sb5srcgltoolsincludeglbatch.h(115): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(115): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(116): error C2146: syntax error : missing ';' before identifier 'uiNormalArray'
1>c:sb5srcgltoolsincludeglbatch.h(116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(117): error C2146: syntax error : missing ';' before identifier 'uiColorArray'
1>c:sb5srcgltoolsincludeglbatch.h(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(118): error C2143: syntax error : missing ';' before '*'
1>c:sb5srcgltoolsincludeglbatch.h(118): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(118): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(119): error C2146: syntax error : missing ';' before identifier 'vertexArrayObject'
1>c:sb5srcgltoolsincludeglbatch.h(119): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(119): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(121): error C2146: syntax error : missing ';' before identifier 'nVertsBuilding'
1>c:sb5srcgltoolsincludeglbatch.h(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(122): error C2146: syntax error : missing ';' before identifier 'nNumVerts'
1>c:sb5srcgltoolsincludeglbatch.h(122): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(122): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(123): error C2146: syntax error : missing ';' before identifier 'nNumTextureUnits'
1>c:sb5srcgltoolsincludeglbatch.h(123): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(123): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglbatch.h(89): error C2065: 'vVerts' : undeclared identifier
1>c:sb5srcgltoolsincludeglbatch.h(90): error C2065: 'vNorms' : undeclared identifier
1>c:sb5srcgltoolsincludeglbatch.h(91): error C2065: 'vColors' : undeclared identifier
1>c:sb5srcgltoolsincludeglbatch.h(92): error C2065: 'vTex' : undeclared identifier
1>c:sb5srcgltoolsincludeglbatch.h(92): error C2065: 'uiTextureLayer' : undeclared identifier
1>c:sb5srcgltoolsincludeglshadermanager.h(85): error C2146: syntax error : missing ';' before identifier 'uiShaderID'
1>c:sb5srcgltoolsincludeglshadermanager.h(85): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(85): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(99): error C2146: syntax error : missing ';' before identifier 'GetStockShader'
1>c:sb5srcgltoolsincludeglshadermanager.h(99): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(99): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(99): warning C4183: 'GetStockShader': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(102): error C2146: syntax error : missing ';' before identifier 'UseStockShader'
1>c:sb5srcgltoolsincludeglshadermanager.h(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(102): warning C4183: 'UseStockShader': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(107): error C2146: syntax error : missing ';' before identifier 'LoadShaderPair'
1>c:sb5srcgltoolsincludeglshadermanager.h(107): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(107): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(107): warning C4183: 'LoadShaderPair': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(110): error C2146: syntax error : missing ';' before identifier 'LoadShaderPairSrc'
1>c:sb5srcgltoolsincludeglshadermanager.h(110): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(110): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(110): warning C4183: 'LoadShaderPairSrc': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(113): error C2146: syntax error : missing ';' before identifier 'LoadShaderPairWithAttributes'
1>c:sb5srcgltoolsincludeglshadermanager.h(113): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(113): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(113): warning C4183: 'LoadShaderPairWithAttributes': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(114): error C2146: syntax error : missing ';' before identifier 'LoadShaderPairSrcWithAttributes'
1>c:sb5srcgltoolsincludeglshadermanager.h(114): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(114): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(114): warning C4183: 'LoadShaderPairSrcWithAttributes': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(117): error C2146: syntax error : missing ';' before identifier 'LookupShader'
1>c:sb5srcgltoolsincludeglshadermanager.h(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(117): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(117): warning C4183: 'LookupShader': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludeglshadermanager.h(120): error C2146: syntax error : missing ';' before identifier 'uiStockShaders'
1>c:sb5srcgltoolsincludeglshadermanager.h(120): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludeglshadermanager.h(120): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(96): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): error C2146: syntax error : missing ';' before identifier 'GetIndexCount'
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): error C2433: 'GLTriangleBatch::GLuint' : 'inline' not permitted on data declarations
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): warning C4183: 'GetIndexCount': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): error C2146: syntax error : missing ';' before identifier 'GetVertexCount'
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): error C2433: 'GLTriangleBatch::GLuint' : 'inline' not permitted on data declarations
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): warning C4183: 'GetVertexCount': missing return type; assumed to be a member function returning 'int'
1>c:sb5srcgltoolsincludegltrianglebatch.h(109): error C2143: syntax error : missing ';' before '*'
1>c:sb5srcgltoolsincludegltrianglebatch.h(109): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(109): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(114): error C2146: syntax error : missing ';' before identifier 'nMaxIndexes'
1>c:sb5srcgltoolsincludegltrianglebatch.h(114): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(114): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(115): error C2146: syntax error : missing ';' before identifier 'nNumIndexes'
1>c:sb5srcgltoolsincludegltrianglebatch.h(115): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(115): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(116): error C2146: syntax error : missing ';' before identifier 'nNumVerts'
1>c:sb5srcgltoolsincludegltrianglebatch.h(116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(118): error C2146: syntax error : missing ';' before identifier 'bufferObjects'
1>c:sb5srcgltoolsincludegltrianglebatch.h(118): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(118): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(119): error C2146: syntax error : missing ';' before identifier 'vertexArrayBufferObject'
1>c:sb5srcgltoolsincludegltrianglebatch.h(119): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(119): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltrianglebatch.h(101): error C2065: 'nNumIndexes' : undeclared identifier
1>c:sb5srcgltoolsincludegltrianglebatch.h(102): error C2065: 'nNumVerts' : undeclared identifier
1>c:sb5srcgltoolsincludegltools.h(144): error C2065: 'GLint' : undeclared identifier
1>c:sb5srcgltoolsincludegltools.h(144): error C2065: 'nMajor' : undeclared identifier
1>c:sb5srcgltoolsincludegltools.h(144): error C2065: 'GLint' : undeclared identifier
1>c:sb5srcgltoolsincludegltools.h(144): error C2065: 'nMinor' : undeclared identifier
1>c:sb5srcgltoolsincludegltools.h(144): error C2182: 'gltGetOpenGLVersion' : illegal use of type 'void'
1>c:sb5srcgltoolsincludegltools.h(144): error C2078: too many initializers
1>c:sb5srcgltoolsincludegltools.h(153): error C2143: syntax error : missing ';' before '*'
1>c:sb5srcgltoolsincludegltools.h(153): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(153): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(157): error C2143: syntax error : missing ';' before '*'
1>c:sb5srcgltoolsincludegltools.h(157): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(157): error C2086: 'int GLbyte' : redefinition
1> c:sb5srcgltoolsincludegltools.h(153) : see declaration of 'GLbyte'
1>c:sb5srcgltoolsincludegltools.h(157): error C2061: syntax error : identifier 'GLint'
1>c:sb5srcgltoolsincludegltools.h(157): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(162): error C2146: syntax error : missing ';' before identifier 'gltGrabScreenTGA'
1>c:sb5srcgltoolsincludegltools.h(162): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(162): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(167): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludegltools.h(168): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludegltools.h(169): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludegltools.h(170): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludegltools.h(171): error C2061: syntax error : identifier 'GLfloat'
1>c:sb5srcgltoolsincludegltools.h(174): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludegltools.h(175): error C2061: syntax error : identifier 'GLuint'
1>c:sb5srcgltoolsincludegltools.h(177): error C2146: syntax error : missing ';' before identifier 'gltLoadShaderPair'
1>c:sb5srcgltoolsincludegltools.h(177): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(177): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(178): error C2146: syntax error : missing ';' before identifier 'gltLoadShaderPairWithAttributes'
1>c:sb5srcgltoolsincludegltools.h(178): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(178): error C2086: 'int GLuint' : redefinition
1> c:sb5srcgltoolsincludegltools.h(177) : see declaration of 'GLuint'
1>c:sb5srcgltoolsincludegltools.h(178): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(180): error C2146: syntax error : missing ';' before identifier 'gltLoadShaderPairSrc'
1>c:sb5srcgltoolsincludegltools.h(180): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(180): error C2086: 'int GLuint' : redefinition
1> c:sb5srcgltoolsincludegltools.h(177) : see declaration of 'GLuint'
1>c:sb5srcgltoolsincludegltools.h(180): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(181): error C2146: syntax error : missing ';' before identifier 'gltLoadShaderPairSrcWithAttributes'
1>c:sb5srcgltoolsincludegltools.h(181): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(181): error C2086: 'int GLuint' : redefinition
1> c:sb5srcgltoolsincludegltools.h(177) : see declaration of 'GLuint'
1>c:sb5srcgltoolsincludegltools.h(181): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:sb5srcgltoolsincludegltools.h(183): error C2146: syntax error : missing ')' before identifier 'progName'
1>c:sb5srcgltoolsincludegltools.h(183): warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
1>c:sb5srcgltoolsincludegltools.h(183): error C2059: syntax error : ')'
1>c:sb5srcgltoolsincludegltools.h(184): error C2146: syntax error : missing ')' before identifier 'width'
1>c:sb5srcgltoolsincludegltools.h(184): error C2182: 'gltGenerateOrtho2DMat' : illegal use of type 'void'
1>c:sb5srcgltoolsincludegltools.h(184): error C2059: syntax error : ')'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(46): error C2378: 'GLbyte' : redefinition; symbol cannot be overloaded with a typedef
1> c:sb5srcgltoolsincludegltools.h(153) : see declaration of 'GLbyte'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(48): error C2378: 'GLint' : redefinition; symbol cannot be overloaded with a typedef
1> c:sb5srcgltoolsincludegltools.h(162) : see declaration of 'GLint'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(52): error C2378: 'GLuint' : redefinition; symbol cannot be overloaded with a typedef
1> c:sb5srcgltoolsincludegltools.h(177) : see declaration of 'GLuint'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1154): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1154): error C2143: syntax error : missing ',' before '*'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1155): error C2146: syntax error : missing ')' before identifier 'i'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1155): warning C4229: anachronism used : modifiers on data are ignored
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1155): error C2182: 'glArrayElement' : illegal use of type 'void'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1155): error C2491: 'glArrayElement' : definition of dllimport data not allowed
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1155): error C2059: syntax error : ')'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1157): error C2061: syntax error : identifier 'GLuint'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1160): error C2146: syntax error : missing ')' before identifier 'list'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1160): warning C4229: anachronism used : modifiers on data are ignored
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1160): error C2182: 'glCallList' : illegal use of type 'void'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1160): error C2491: 'glCallList' : definition of dllimport data not allowed
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1160): error C2059: syntax error : ')'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1167): error C2146: syntax error : missing ')' before identifier 's'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1167): warning C4229: anachronism used : modifiers on data are ignored
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1167): error C2182: 'glClearStencil' : illegal use of type 'void'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1167): error C2491: 'glClearStencil' : definition of dllimport data not allowed
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1167): error C2059: syntax error : ')'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1169): error C2146: syntax error : missing ')' before identifier 'red'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1169): warning C4229: anachronism used : modifiers on data are ignored
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1169): error C2182: 'glColor3b' : illegal use of type 'void'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1169): error C2491: 'glColor3b' : definition of dllimport data not allowed
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1169): error C2059: syntax error : ')'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1170): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1170): error C2143: syntax error : missing ',' before '*'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1175): error C2146: syntax error : missing ')' before identifier 'red'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1175): warning C4229: anachronism used : modifiers on data are ignored
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1175): error C2182: 'glColor3i' : illegal use of type 'void'
1>c:program files (x86)microsoft sdkswindowsv7.0aincludeglgl.h(1175): fatal error C1003: error count exceeds 100; stopping compilation
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.67
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
似乎有一个问题与标题本身,即使我从官方网站上下载它们。我还试图在Visual Studio 2010 c++ Express中编译相同的代码和相同的错误。我不想使用Code::blocks,因为我发现使用这样的东西没有任何好处。这一切看起来都很麻烦。我更喜欢在Visual Studio中工作。
编辑(添加的源代码):// Triangle.cpp
// Our first OpenGL program that will just draw a triangle on the screen.
#include <GLTools.h> // OpenGL toolkit
#include <GLShaderManager.h> // Shader Manager Class
#ifdef __APPLE__
#include <glut/glut.h> // OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include <GL/glut.h> // Windows FreeGlut equivalent
#endif
GLBatch triangleBatch;
GLShaderManager shaderManager;
///////////////////////////////////////////////////////////////////////////////
// Window has changed size, or has just been created. In either case, we need
// to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
}
///////////////////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering context.
// This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
{
// Blue background
glClearColor(0.0f, 0.0f, 1.0f, 1.0f );
shaderManager.InitializeStockShaders();
// Load up a triangle
GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };
triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}
///////////////////////////////////////////////////////////////////////////////
// Called to draw scene
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();
// Perform the buffer swap to display back buffer
glutSwapBuffers();
}
///////////////////////////////////////////////////////////////////////////////
// Main entry point for GLUT based programs
int main(int argc, char* argv[])
{
gltSetWorkingDirectory(argv[0]);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %sn", glewGetErrorString(err));
return 1;
}
SetupRC();
glutMainLoop();
return 0;
}
当第一次在Windows操作系统上使用OpenGL的用户开始开发他们的软件时,你所看到的错误确实经常出现。虽然在这种情况下,错误消息稍微被glbatch.h所掩盖,通常错误会指向gl.h。
如果您在Windows上,确保在包含gl.h
之前包含windows.h
,或者任何其他可能间接包含gl.h的文件。
如MSDN所述,这是OpenGL工作所必需的
相关文章:
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 解释通过 lex/flex 实现 C/C++嵌套的"#include "Header""语法?
- typedef vector size_type in header file
- 无法让 Assimp 在 Windows " linker problem" 上运行?(与2019年相比)
- C++17 std::variant header file (clang 6.0.0)
- Header of _tcsstr
- "#include <path/to/header>"指令的含义(如"#include <loki/Functor.h>")
- JavaScript "header"文件来存储一些数据
- 如何修复'PCH Warning: header stop not at file scope'
- Android CMake "致命错误: 'bits/libc-header-start.h' 文件未找到"
- QAbstractTableModel::header data and QML TableView
- 如何在"Microsoft Visual Studio Community 2015"的现有"C++ Project"中创建新"header file (.h)"?
- header for fopen visual studio 2015 community edition
- clang-tidy llvm-header-guard目录配置
- QT C :函数的多个定义当Header文件包含在MainWindow.h中时
- 不理解 gcc --with-local-prefix, --with-native-system-header-dir=
- HttpAddRequestHeadersW with unicode string header
- 在 RPI 上编译 ROS 在 opencv 时失败,未定义对'header'的引用
- 何时要在 Visual Studio 中关闭"precompiled header"?
- OpenGL SuperBible header problem