怎么办怎么办要学习计算机图形学了

配置环境对每个人来说都十分的苦恼,即便我按照老师的步骤一步步来,也没成功(什么情况?这就是配置的魅力所在)

配置须知

我只能保证在我这样的环境下能正常运行。

  • 系统:Windows10教育版(21H2,19044.1766)

配置前准备

首先请准备好以下安装包(链接不保真):

安装与解压

对于Dev-C++Cmake 直接双击安装即可,注意安装位置,同时在安装Cmake的时候记的选择 导入Path,创建桌面图标 选项。

如果没有导入系统路径,请自行搜索导入。

1
2
3
4
$ cmake --version
#cmake version 3.13.5

#CMake suite maintained and supported by Kitware (kitware.com/cmake).

对于GCCFreeglut 解压到合适的目录即可。

将解压的GCC文件夹mingw32 复制粘贴到如C:\Program Files (x86)\Dev-Cpp 的Dev-C++安装目录下。

mingw32路径

自行将mingw32/bin 添加到系统路径。

1
2
3
4
5
$ g++ --version
#g++ (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
#Copyright (C) 2018 Free Software Foundation, Inc.
#This is free software; see the source for copying conditions. There is NO
#warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

编译Freeglut

  • 双击打开Cmake
  • 选择Freeglut之前解压的目录和Cmake输出目录。
    选择目录
  • 选择生成器(generator)为 Mingw Makefiles ,其他默认。
  • 点击 Configure ,出现报红,更改其中的值(install是指在编译后输出的目录,如在C:/Users/lnpbqc/Documents/freeglut-build/install下面)。
    选择Cmake配置
  • 点击ConfigureGenerate ,后打开C:/Users/lnpbqc/Documents/freeglut-build
  • 文件夹 中打开cmd,输入 mingw32-make install,等待完成即可。
  • 得到 install 文件夹,里面有binincludelib
  • 将其复制到Dev-C++安装目录下 ,重命名为opengl
    Freeglut目录情况

自此可以来配置Dev-C++了

这个没什么说的,把对应的目录添加进来即可,下面给出我的例子。
新建配置及链接说明
添加二进制文件
添加库文件
添加C头文件
添加C++头文件
配置对应程序

最后确定保存即可。

运行Glut程序

下面给出一段C语言程序,测试运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <GL/glut.h>
void init(){
glutInitWindowPosition(100,100);
glutInitWindowSize(150,150);
}
void init2(){

}
void Reshape(int w,int h){
glViewport(w/4,h/4,w/2,h/2);
}
void Paint(){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
{
glVertex2d(-0.95,-0.95);
glVertex2d(0.95,-0.95);
glVertex2d(0,0.95);
}
glEnd();
glFlush();
}

int main(int argc,char* argv[]){
glutInit(&argc,argv);
init();
glutCreateWindow("First OpenGL!");
init2();
glutDisplayFunc(Paint);
glutReshapeFunc(Reshape);
glutMainLoop();
return 0;
}

运行结果

一般地,对于这个程序都能正常运行。但我的电脑不一般,所以还需要其他配置,如果也出现相同情况可以参考。

问题及补丁

undefined reference

可以试着在引入头文件<GL/glut.h>之前加入以下代码。

1
2
3
#ifndef GLUT_DISABLE_ATEXIT_HACK 
#define GLUT_DISABLE_ATEXIT_HACK
#endif

未找到libglut.dll

可以将前文的opengl/bin目录下的libglut.dll文件拷贝到C:\Windows\SysWOW64下面,即可解决。