0

我有这种情况,我使用 Netbeans 6.8 和推荐的 MinGW+msys 配置,并且编译工作。现在我有一个使用 glut 的项目,所以我在“项目属性->构建->链接器->库”中链接了库 opengl32、glut32、glu32、gdi32、winmm、mingw32,我手动选择了所有 .lib 文件和编译工作!

但是,然后我在项目中添加了一些其他 h 和 cpp 文件(纹理加载器等),它们使用 glut 并且它们 #include 它并且 IDE 似乎很好,但是当我尝试编译代码时,出现错误编译这些文件:

.../Terrain.cpp:132: undefined reference to `_imp__glVertex3fv'
.../Terrain.cpp:135: undefined reference to `_imp__glTexCoord2d'
.../Terrain.cpp:139: undefined reference to `_imp__glNormal3fv'
.../Terrain.cpp:140: undefined reference to `_imp__glVertex3fv'

还有更多。据我了解,这意味着 lib 文件没有链接,但它们在项目中已链接,主文件可以毫无问题地使用所有这些文件。

我尝试了一切,但我可​​能遗漏了一些东西。也可以使用 vs2010 编译器编译项目(从 vs2010 中的文件创建新项目)。

请帮忙,有没有人有在 NetBeans 中将库与 MinGW 链接的经验?

4

2 回答 2

1

“答案”是不包括 windows.h 之前的 this、that 或 other。您只需要确保在 glut32.dll 中使用了 __stdcall 约定。

按照在以下位置使用 MinGW 为 Win32 构建 GLUT 库的过程:

http://www.mingw.org/wiki/HOWTO_Compile_the_OpenGL_Utility_Toolkit_GLUT_for_Win32_with_MinGW

于 2010-12-23T00:32:03.750 回答
0

使用 glut.h 的每个文件都需要在包含 gl.h 或 glut.h 之前包含windows.h 。

花了我很多时间,希望它可以帮助某人(我也在寻找解决方案)。

注意:我在这里找到了答案链接文本,在第2.070节中,有错误,例如...undefined reference to ...,描述,但windows.h解决方案在其他类型的错误中描述(

c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : 
error C2054: expected '(' to follow 'WINGDIAPI'
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : 
error C2085: 'APIENTRY' : not in formal parameter list

)

于 2010-05-13T16:12:13.733 回答