CodeBlocks 16.01配置OpenGL(GLUT)
撰写时间:2018年12月11日
上一篇写了Visual studio express 2013 for desktop下如何配置OpenGL。这次写下在codeBlocks下如何配置。
一、系统环境
- windows 10 64bit 版本1803
- CodeBlocks 16.01 Rev 10702
CodeBlocks 16.01下载不带minGW的版本,因为我们会单独使用tdm-gcc安装minGW套件
- tdm-gcc-5.1.0-3.exe
- Glut 3.7 beta
- winglut.zip
二、软件准备
1. tdm-gcc
tdm-gcc-5.1.0-3.exe是个C/C++的编译器套件minGW,我们开发C++程序,当然需要该编译器了。当然,也可以使用微软的VC编译器,也是可以的。这里我们使用GNU GCC编译器,所以下载了tdm-gcc-5.1.0-3.exe。
下载地址:http://tdm-gcc.tdragon.net/download
2. CodeBlocks
CodeBlocks可以到腾讯下载中心下载,相对于官网,腾讯软件中心的下载速度比较快。腾讯上的版本不带minGW,就选这个了。
版本号是 16.01: https://pc.qq.com/detail/3/detail_2123.html
3. Glut和winGlut
minGW编译器套件是gcc在Windows下的移植版,gcc在Linux下工作得更好。在windows下使用minGW版本的OpenGL库时,除了需要Glut这些东西外,还需要winGlut链接库。
(1) glut下载地址可以到我的百度云,或者网上找。建议到我的百度云下载(无需提取码):
https://pan.baidu.com/s/1TP1Kx8L6GkrMILDIK5jx2w
下载后发现里面有7个文件,如下:
(2)winGlut.zip可以到这里下载:
http://web.cs.wpi.edu/~gogo/courses/mingw/winglut.zip
或者到我的百度云下载:
https://pan.baidu.com/s/1XNasPj2smTOFdjeOj3sf_A
三、安装tdm-gcc和CodeBlocks
1. 安装tdm-gcc
首先我们安装tdm-gcc-5.1.0-3.exe,由于它是编译器,我们先安装它。随后安装CodeBlocks 16.01的时候,就可以自动检测到该编译器了。
安装过程没什么好说的,建议安装32位的版本,64位的操作系统是兼容32位版本的gcc的所以不必担心兼容性问题。我将其安装到了C盘的根目录下,目录为:C:\TDM-GCC-32
。
2. 安装CodeBlocks
安装过程没什么好说的,直接一步步安装到默认路径。安装完成后勾选自动启动,然后它会自己检测到已经存在的编译器,这里我们选择GNU GCC Compiler,也就是我们之前安装的tdm-gcc了。
四、设置Glut和winGlut
1. 复制Glut文件
将下载的glutdlls37beta.zip解压缩为文件夹glutdlls37beta。
将glutdlls37beta中的文件复制到对应的TDM-GCC目录,具体复制关系如下(不要着急复制,可以使用下面的bat文件自动复制):
下面的$minGW_HOME$指的是:
C:\TDM-GCC-32
1). 将glut.h复制到\$minGW_HOME\$\include\GL
目录,GL目录是本来就存在的。
2). 将glut.lib和glut32.lib复制到$minGW_HOME\lib
目录,。
3). 如果是64位操作系统,将glut.dll和glut32.dll复制到C:\Windows\SysWOW64
如果是32位操作系统,将glut.dll和glut32.dll复制到C:\Windows\System32
那么,另外两个x64_Copy2VS2013Express.bat和x64_Copy2_Tdm-gcc.bat是干嘛的呢?
手动复制多个文件的操作是比较麻烦而且容易出错的。所以我写了个bat批处理文件,x64_Copy2VS2013Express.bat将对应的文件复制到Visual studio express 2013 for desktop的默认安装目录(请不要随意更改VS的安装路径),当然,这个bat文件本博客中用不着。
x64_Copy2_Tdm-gcc.bat是将glut库的对应文件复制到TDM-GCC编译器默认的安装目录。这里我们直接右键单击该bat批处理文件,以管理员运行,如果不报错即可完成复制。(复制到C盘某些目录,需要管理员权限)
2. 复制winGlut文件
解压缩winglut.zip到文件夹winglut。解压后如下图所示,我们只需要winlib文件夹中的libglut32win.a链接库文件。
将libglut32win.a复制到$minGW_HOME\lib
目录,本文中是C:\TDM-GCC-32\lib
,具体目录取决于你的tdm-gcc安装路径。
五、使用CodeBlocks创建Glut工程
(1)打开CodeBlocks,点击菜单栏【File】-->【New】-->【Project】,选择【GLUT project】,指定项目的名称和项目的存储路径。
create_glut_project
(2)指定GLUT的安装路径。
注意看对话框上的说明文字,步骤四.1中,我把glut安装到tdm-gcc的目录下,GLUT的安装路径必须包含include和lib两个子文件夹。本文中,我的GLUT安装路径是:C:\TDM-GCC-32
(3)指定编译器
这一步指定编译器,当然是选择GNU GCC Compiler啦,要不然我们安装tdm-gcc干嘛。
(4)运行glut示例程序
如果上面的步骤都没有错,那么至此CodeBlocks工程创建成功,可以选择菜单【Build】-->【Build and run】或者按下F9,构建并运行程序。得到如下报错:
这是什么缘故呢?根据这篇博客的结果:https://blog.csdn.net/qq_38068435/article/details/79662624,我们需要在头文件中添加#include<windows.h>
, windows.h最好放在#include <GL/glut.h>
的前面。
如下图所示:
再次按下F9,构建并运行,得到正确结果,喜大普奔!!!
glut_shape_results
六、写在后面的话
本文中使用了不带minGW的CodeBlocks,因此最后新建CodeBlocks工程后,还需要添加windows.h头文件。
根据这篇博客:Code Blocks中配置OpenGL方法-Sophiale07,
使用带minGW的CodeBlocks,该博主可以不加windows.h
头文件而不报错。不过这个我并未验证。如果有谁验证了请告诉我!!!