2011-06-03 103 views
8

我试图编译别人的项目,并且我得到了大约850个与OpenGL相关的错误。我在64位Windows 7上使用Visual Studio 2008,但该项目是一个Win32项目。获取许多OpenGL错误

正如你所看到的,下面的错误是从gl.h在Windows SDK包含文件夹下Program Files,而不是Program Files (x86)所以我猜这是问题的一部分。我已经尝试添加包含gl.h并且在Program Files (x86)下的.NET 2003 include目录,但它仍然尝试使用gl.h的版本号Program Files

此外,该项目采用的wxWidgets 2.4.2和我无法找到被包含在解决方案本身的gl.h任何实例,所以我不知道是什么拉动的

更新:仍无法编译这个。我试图编译的实际项目是“Interactive Digital Photomontage”工具(链接中的源代码)。他们包括一个VS2003项目文件和说明,我仔细跟踪。我甚至尝试过在VS2003中编译并得到相同的错误。我很好奇,如果有人有他们的系统尝试这一点,看看他们是否得到相同的错误。需要安装wxWidgets 2.4.2。

有什么想法?我在下面列出了一些错误的例子。谢谢。

1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1152) : error C2144: syntax error : 'void' should be preceded by ';' 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1152) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1152) : error C2146: syntax error : missing ';' before identifier 'glAccum' 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1152) : error C2182: 'APIENTRY' : illegal use of type 'void' 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1152) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1153) : error C2144: syntax error : 'void' should be preceded by ';' 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1153) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\GL/gl.h(1153) : error C2086: 'int WINGDIAPI' : redefinition 
+0

头文件,无论位数相同(他们使用'在需要的地方#if')之前,包括 “WINDOWS.H” ,所以不要不用担心从64位编译器目录加载头文件。 – 2011-06-03 04:36:17

回答

14

你需要 “gl.h”

#include "windows.h" 
#include "gl.h" 
+1

我试过了,它没有改变任何东西,但我不确定这个项目的“主”文件是什么,所以我不确定我应该把它放在哪里。该项目应该生成一个名为'fuse.exe'的exe文件,以便'fuse.cpp'看起来像是合乎逻辑的地方,但那不起作用,并且该文件似乎没有主要功能。该项目使用wxWidgets来创建它的GUI,所以我猜可能入口点是在某个wx头部。有什么想法吗?谢谢。 – SSilk 2011-06-03 14:59:02

+0

此外,寻找类似的问题,我注意到很多答案是,有人试图将C代码编译为C++。是OpenGL C或C++吗?我该如何改变我的项目编译方式。在包含gl.h的整个解决方案中,我实际上找不到任何地方。我认为这可能是由wxWidgets引起的,但是,不知道如何。 – SSilk 2011-06-03 15:44:49

+1

好的,我最终得到了这个工作。我找不到任何单个“顶级”cpp文件,其中包含一个windows.h可以解决这个问题,所以我浏览了该项目,并将其包含在每个给我这些错误并且阻止它们的文件中。现在得到一些其他的错误,但他们似乎无关。谢谢。 – SSilk 2011-06-11 17:17:33