在 CodeBlocks 中设置 OpenGL

Posted

技术标签:

【中文标题】在 CodeBlocks 中设置 OpenGL【英文标题】:Setting up OpenGL in CodeBlocks 【发布时间】:2014-05-20 21:08:49 【问题描述】:

为了在 CodeBlocks 中使用 OpenGl,我无法获得正确的设置。

我已使用本教程中的说明:GLUT,但要运行我的项目,我需要以下标志:-lGL -lGLU -lglut,我可以在构建选项的其他链接器选项选项卡中设置它。当我这样做时,编译器会说cannot find -lGL -lGLU -lglut。为了使这些库工作,我必须安装什么? GL.h GLU.h 过剩.h?如果是,我如何将它们链接到项目?通过在链接库选项卡中添加它们?并且从 Build options 中出现的项目树中,当我安装这些库、Debug 或 Release 时,是否必须选择项目的名称?

在构建选项中,如果我选择项目的名称,在链接库中我有以下内容:glut32、opengl32、glu32、winmm、gdi32,但我不记得为它们提供了路径。它们是正确的还是我也必须更改它们?

我想提一下,创建的项目是一个 GLUT 项目,并且我使用的是 Windows 7。

【问题讨论】:

认真考虑改用 Qt Creator - 即使是非 Qt 项目。 我真的必须使用 OpenGL。而且我也不知道该怎么做。不过谢谢你的建议。 您可以在 QtCreator 中使用 OpenGL。很多人都这样做。 是的,但我宁愿找出如何正确链接几个库,也不愿学习使用 Qt Creator,因为我明天需要这个项目。稍后我也可以尝试使用 Qt Creator。 您需要了解库如何使用 MinGW 工具链(CodeBlocks 在 Win32 上使用的)在 C++(不是一个简单的主题)中工作。 GL.h 等是向编译器承诺哪些函数在链接时可用的标头。然后链接器从这些头文件中查找使用的函数,并且由于您没有自己编写这些函数,因此您需要告诉链接器在哪里查找它们(-l 参数)。它变得更加棘手,因为您可以使用静态链接(所有函数都嵌入到您的 .exe 中)或动态链接(.dll 包含实际代码,而库只是链接到它)。 【参考方案1】:

问题是您告诉 Code::Blocks 寻找 opengl32.libglu32.lib 等,而不是 在哪里 寻找它们。因此链接期间的错误。

Project Build Options -> Search Directories -> Linker 下,您需要添加包含 OpenGL 库的目录。示例:

请注意,包含您的 OpenGL 库的目录可能与我的不同,因为根据您问题中的链接,它们应该位于您放置 MinGW 的任何位置。

您还需要确保将 OpenGL 头文件的位置添加到 Search Directories。示例:

这是包含gl 子目录的文件夹。

【讨论】:

我按照你说的添加了目录,但仍然出现错误。如果我在其他链接器选项-lGL -lGLU -lglut 中有这些标志,则表示无法找到它们,如果我删除它们,则会收到对多个函数的未定义引用的错误。 @user1956190 Mingw/binsystem32 文件夹中是否有 dll? 是的。我把它们放在system32 中,我也在Mingw/bin 中复制了它们,但它仍然不起作用。我有glu32.dllglut32.dll。我需要更多吗?如果是,是哪些? @user1956190 而不是lGL -lGLU,试试-lglu32 -lglut32 它找到了文件,但我得到了未定义的引用错误。另外我忘了提到我有 64 位的 Windows 7。我也应该复制 SysWOW64 中的 dll 吗?【参考方案2】:

下载 GLUT bin zip 文件后(考虑到您之前已经安装了代码块),您提取其中的所有文件并分别复制这三个文件。 glut32.lib 到 c:\program files\mingw\lib 并将 glut32.dll 复制到 c:\windows\system 并将 glut.h(头文件)复制到 c:\program files\mingw\include\GL

然后打开代码块并进行新项目>GLUT。然后将 GLUT 位置设置为 Mingw(在程序文件中),然后完成。它对我来说很好。

【讨论】:

以上是关于在 CodeBlocks 中设置 OpenGL的主要内容,如果未能解决你的问题,请参考以下文章

如何设置codeblocks编译器

我下载的codeblocks也提示找不到可执行的编译器,我后来自己下了一个gcc,但不知道如何设置。

vscode中背景色和光标颜色的设置方法

在xib中设置accessibilityIdentifier nil时,必须从用户定义的运行时属性中设置

在 RichTextBox WPF 中设置文化/语言

当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?