在CodeBlocks中设置OpenGL

4
我在使用CodeBlocks中的OpenGL时遇到了问题,无法获得正确的设置。我使用了这个教程的指南:GLUT但是为了运行我的项目,我需要设置以下标志:-lGL -lGLU -lglut,我可以在Build选项的其他链接器选项标签中设置它们。然而当我这样做时,编译器会报错,提示"cannot find -lGL -lGLU -lglut"。我需要安装哪些库才能让这些库工作呢?GL.h, GLU.h和glut.h?如果是,我该如何将它们链接到项目中?通过在Link libraries选项卡中添加它们吗?此外,在Build选项卡中显示的项目树中,安装这些库时必须选择项目名称、调试版或者发行版吗?
在Build选项中,如果我选择项目名称,在链接库中我有以下内容:glut32,opengl32,glu32,winmm,gdi32,但我不记得给它们路径。它们是正确的吗?还是我也需要更改?
我想提醒一下,创建的项目是一个GLUT项目,我正在使用Windows 7。

认真考虑使用Qt Creator,即使是非Qt项目。 - bvs
我确实需要使用OpenGL。而且我也不知道该怎么做。但还是谢谢你的建议。 - user1956185
你可以在QtCreator中使用OpenGL,许多人都这样做。 - bvs
是的,但我宁愿找出如何正确链接几个库,而不是学习使用Qt Creator,因为我需要明天完成这个项目。稍后我也可以尝试使用Qt Creator。 - user1956185
2
你需要学习C++中库的工作原理(这不是一个简单的主题),使用MinGW工具链(CodeBlocks在Win32上使用的工具链)。GL.h等是头文件,它们向编译器承诺链接时可用的函数。然后,链接器会查找从这些头文件中使用的函数,并且由于您没有编写这些函数,因此需要告诉链接器在哪里查找它们(使用“-l”参数)。这变得更加棘手,因为您可以使用静态链接(所有函数嵌入到您的.exe文件中)或动态链接(.dll包含实际代码,库只是链接到它)。 - Cameron
我该如何将这些头文件添加到项目中呢?我已经添加了glut32.lib。在CodeBlocks中,据我所知,我只能添加.lib文件。我知道这很复杂,我真的很困惑。 - user1956185
2个回答

2
问题在于你告诉Code::Blocks寻找opengl32.libglu32.lib等,但并未指明它们的所在位置。因此,在链接过程中出现错误。
项目构建选项->搜索目录->链接器下,需要添加包含OpenGL库的目录。例如:

enter image description here

请注意,包含OpenGL库的目录可能与我的不同,因为根据你问题中的链接,它们应该在你放置MinGW的位置。
您还需要确保将OpenGL头文件的位置添加到搜索目录。例如:

enter image description here

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

@user1956190 你的 Mingw/bin 文件夹和 system32 文件夹里有dll文件吗? - David G
是的。我把它们放在了 system32 目录下,也复制到了 Mingw/bin 目录下,但仍然无法正常工作。我有 glu32.dllglut32.dll 文件。我需要更多的文件吗?如果需要,需要哪些文件? - user1956185
@user1956190 请尝试使用-lglu32 -lglut32代替-lGL -lGLU - David G
@user1956190 我不知道,因为我有32位,但也可以尝试一下。你得到了什么结果? - David G
使用-lglu32 -lglut32会出现一些函数的未定义引用,如果我尝试使用-lGL -lGLU -lglut,它找不到文件。实际上,我正在尝试从这个网站Game运行此程序,因为我遇到了相同的错误,解决方案是链接-lGL -lGLU -lglut。但在我的情况下,这也不起作用。 - user1956185
显示剩余3条评论

2
在下载GLUT二进制文件压缩包后(假设您已经安装了codeblocks),您需要将其中所有文件解压并将这三个文件分别复制。glut32.lib文件复制到c:\program files\mingw\lib,glut32.dll文件复制到c:\windows\system,glut.h(头文件)复制到c:\program files\mingw\include\GL。
然后打开codeblocks,选择新项目>GLUT。然后设置GLUT位置为Mingw(在程序文件中),最后完成即可。我用这种方法成功了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接