这些'未定义引用__glut * WithExit'OpenGL链接器错误是什么意思?

时间:2009-03-24 14:04:09

标签: opengl

原始问题:

  

[警告]传递GLfloat' for converting 2 of无效   glutSolidSphere(GLdouble,GLint,   闪烁)“
  [警告]通过GLfloat' for converting 3 of无效   glutSolidSphere(GLdouble,GLint,   闪烁)'


在应用了海报关于包含glut.h的建议之后,我现在遇到了这个问题。

没有它我不能使用glutSolidSphere()。

  

[链接器错误]未定义引用   `__glutInitWithExit @ 12'

     

[链接器错误]未定义引用   `__glutCreateWindowWithExit @ 8'

     

[链接器错误]未定义引用   `__glutCreateMenuWithExit @ 8'

     

[链接器错误]未定义引用   `glutSolidSphere @ 16'

我正在使用DEV C ++,如果这有帮助的话。

5 个答案:

答案 0 :(得分:1)

看起来很糟糕。也许它告诉你,你正在传递一个GLfloat,其中GLint是预期的,作为第二和第三个参数?请再次粘贴您的确切错误/警告输出,这看起来不正确。

答案 1 :(得分:1)

'slices'和'stacks'参数应该是整数;你的代码是以浮点数传递的。

编辑:你真的不应该编辑你的问题,使它成为一个完全不同的问题。未定义的引用意味着您没有链接包含这些函数的库。您需要在要链接的库列表中包含GLuT。

答案 2 :(得分:1)

正如DNS所说,但用更简单的术语来说:

您需要链接GLUT库。我相信它通常是Win32机器上的glut32.lib。在IDE的项目属性页面中应该有一个选项;抱歉,我不使用Dev-C ++,但在Visual Studio中,它位于项目属性中,然后是链接器设置,以及“附加库包含”。

答案 3 :(得分:1)

-lglut32选项传递给mingw的链接器 - Dev-Cpp使用mingw。

您必须在“项目选项”中的某处找到“链接器选项”文本框。对不起,我不能比这更具体,自从我使用Dev-Cpp已经超过一年了,而且自从我真的使用它已经过去了三年多。它应与您添加-lopengl32-lglu32的地方相同。

不要忘记安装GLUT devpak

答案 4 :(得分:0)

GLUTMingw32.zip文件包含在devcpp下构建所需的所有文件 我在桌面上提取它。添加了lib并包含devcpp项目项目选项菜单中的目录以包含和lib目录。 在参数选项卡上的项目选项对话框中添加后 - >链接器:

../../../../开发-CPP / LIB / libopengl32.a

../../../../开发-CPP / LIB / libglu32.a

../ GLUTMingw32 / GLUTMingw32 / LIB / libglut32.a

前两个是在devcpp install dir / lib文件夹中 /你可以使用-lopengl32和-lglu32,它可以工作/

第三个,libglut32.a,我从提取的GLUTMingw32.zip文件夹中添加

将glut32.dll放置在生成项目并且main.cpp驻留的文件夹中

这就是全部。 在我获得权限被拒绝后 我刚删除生成的exe文件并重新编译 如果exe不能删除,请关闭devcpp

如果抱怨短暂的重新定义

添加在main.cpp的顶部 “#define _WCHAR_T_DEFINED”

没有引号