无法在Visual Studio 2008中编译3D点查看器

时间:2011-03-08 08:10:30

标签: visual-studio opengl

有人可以帮助我吗?我正在尝试运行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;

有人可以告诉我出了什么问题吗?

1 个答案:

答案 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,你仍然会得到相同的错误吗?