在 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.lib
、glu32.lib
等,而不是 在哪里 寻找它们。因此链接期间的错误。
在Project Build Options
-> Search Directories
-> Linker
下,您需要添加包含 OpenGL 库的目录。示例:
请注意,包含您的 OpenGL 库的目录可能与我的不同,因为根据您问题中的链接,它们应该位于您放置 MinGW 的任何位置。
您还需要确保将 OpenGL 头文件的位置添加到 Search Directories
。示例:
这是包含gl
子目录的文件夹。
【讨论】:
我按照你说的添加了目录,但仍然出现错误。如果我在其他链接器选项-lGL -lGLU -lglut
中有这些标志,则表示无法找到它们,如果我删除它们,则会收到对多个函数的未定义引用的错误。
@user1956190 Mingw/bin
和 system32
文件夹中是否有 dll?
是的。我把它们放在system32
中,我也在Mingw/bin
中复制了它们,但它仍然不起作用。我有glu32.dll
和glut32.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也提示找不到可执行的编译器,我后来自己下了一个gcc,但不知道如何设置。
在xib中设置accessibilityIdentifier nil时,必须从用户定义的运行时属性中设置
当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?