这些'未定义的对 __glut*WithExit' OpenGL 链接器错误的引用是啥意思? [复制]

Posted

技术标签:

【中文标题】这些\'未定义的对 __glut*WithExit\' OpenGL 链接器错误的引用是啥意思? [复制]【英文标题】:What is the meaning of these ' undefined reference to __glut*WithExit ' OpenGL linker errors? [duplicate]这些'未定义的对 __glut*WithExit' OpenGL 链接器错误的引用是什么意思? [复制] 【发布时间】:2009-03-24 14:04:09 【问题描述】:

原问题:

[警告] 传递 GLfloat' for converting 2 ofvoid glutSolidSphere(GLdouble,GLint, 闪烁)' [警告] 传递GLfloat' for converting 3 ofvoid glutSolidSphere(GLdouble,GLint, 闪烁)'


在应用了包含 glut.h 的发布者建议之一后,我现在遇到了这个问题。

没有它我无法使用 glutSolidSphere()。

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

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

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

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

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

【问题讨论】:

这个问题的标题没有意义。有人可以编辑吗? 发布导致问题的代码 这只是关于 glutSolidShere() 的一行,我和 #include 一起出现了 【参考方案1】:

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

【讨论】:

【参考方案2】:

'slices' 和 'stacks' 参数应该是整数;您的代码正在传递浮点数。

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

您必须在项目选项中的某处找到“链接器选项”文本框。抱歉,我不能说得更具体,我使用 Dev-Cpp 已经一年多了,而我真的使用它已经三年多了。它应该与您添加-lopengl32-lglu32 的位置相同。

别忘了安装GLUT devpak。

【讨论】:

【参考方案5】:

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

../../../../Dev-Cpp/lib/libopengl32.a

../../../../Dev-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 的顶部添加 "# 定义 _WCHAR_T_DEFINED"

不带引号

【讨论】:

以上是关于这些'未定义的对 __glut*WithExit' OpenGL 链接器错误的引用是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

GLUT 退出重定义错误

《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法

OpenGL glut库

使用 GLUT_3_2_CORE_PROFILE 时出现 OpenGL 错误 1282(无效操作)

为啥 glut.h 会在 CodeBlocks 中弹出一堆未定义的引用?

在 Qt Creator 中包含 Python