这些'未定义的对 __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 of
void glutSolidSphere(GLdouble,GLint, 闪烁)' [警告] 传递GLfloat' for converting 3 of
void glutSolidSphere(GLdouble,GLint, 闪烁)'
在应用了包含 glut.h 的发布者建议之一后,我现在遇到了这个问题。
没有它我无法使用 glutSolidSphere()。
[链接器错误]未定义的引用 `__glutInitWithExit@12'
[链接器错误]未定义的引用 `__glutCreateWindowWithExit@8'
[链接器错误]未定义的引用 `__glutCreateMenuWithExit@8'
[链接器错误]未定义的引用 `glutSolidSphere@16'
如果有帮助,我正在使用 DEV C++。
【问题讨论】:
这个问题的标题没有意义。有人可以编辑吗? 发布导致问题的代码 这只是关于 glutSolidShere() 的一行,我和 #include 一起出现了这看起来很糟糕。也许它告诉您,您正在传递 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 链接器错误的引用是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法
使用 GLUT_3_2_CORE_PROFILE 时出现 OpenGL 错误 1282(无效操作)