有人可以帮助我吗?我正在尝试运行3d点云查看器。但是它显示了以下错误
Error 1 error C2144: syntax error : 'void' should be preceded by ';' c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1152 Viewer
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1152 Viewer
Error 3 error C2146: syntax error : missing ';' before identifier 'glAccum' c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1152 Viewer
Error 4 error C2182: 'APIENTRY' : illegal use of type 'void' c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1152 Viewer
Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1152 Viewer
Error 6 error C2144: syntax error : 'void' should be preceded by ';' c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1153 Viewer
Error 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft sdks\windows\v6.0a\include\gl\gl.h 1153 Viewer
依旧...... 我的代码的开头是:
#include <cstdlib>
#include <GL/glut.h>
#include <cmath>
#include "arcball.h"
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
有人可以告诉我出了什么问题吗?
答案 0 :(得分:0)
好吧,第一个报告的错误是在第一行声明了WINGDIAPI
修饰符的函数。显然,这是在wingdi.h
中声明的。但是,我不确定你是否直接#include
,或者是否有更正式的建议来在windows环境中编译opengl代码。我会去打猎。
MSDN上讨论necessary headers for OpenGL工作的页面有点模糊,但我接受了:
支持Microsoft在Windows中实现OpenGL的Windows功能必须包含头文件Windows.h。
表示您应该先包含windows.h
。
真的?如果我在VS2008中创建一个空C ++项目,创建一个空的cpp文件,复制并粘贴你的包,然后点击编译,我得到你描述的错误。如果我将包含更改为:
#include <cstdlib>
#include <windows.h>
#include <GL/gl.h>
#include <cmath>
#include "arcball.h"
#include <vector>
#include <iostream>
#include <fstream>
然后我得到的第一个报告的错误是它找不到“arcball.h”(几乎不出意外)。一旦包含windows.h,你仍然会得到相同的错误吗?