我有这种情况,我使用Netbeans 6.8和推荐的MinGW + msys配置,并编译工作。现在我有一个使用过剩的项目,所以我将库opengl32,glut32,glu32,gdi32,winmm,mingw32链接到“project properties-> build-> linker-> libraries”中,我手动选择所有.lib文件和编译工作!
但是,然后我添加了一些其他h和cpp文件到项目(纹理加载器等),它们使用过剩而且#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链接库时是否有用?
答案 0 :(得分:1)
“回答”不包括在此之前,那个或其他的windows.h。您只需要确保在glut32.dll中使用__stdcall约定。
按照以下位置使用MinGW构建Win32的GLUT库的过程:
http://www.mingw.org/wiki/HOWTO_Compile_the_OpenGL_Utility_Toolkit_GLUT_for_Win32_with_MinGW
答案 1 :(得分:0)
使用glut.h的每个文件都需要包含 windows.h 才能包含gl.h或glut.h ..
花了我一些时间,希望它有所帮助(我也在这里寻找解决方案)。
注意:我在这里找到答案link text,在2.070节中,描述了错误,例如...undefined reference to ...
,但是windows.h解决方案在其他类型的错误中描述(/ p>
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
)