Hello, Computer Graphics (MinGW)

今天终于开始了计算机图形学的学习,首先先配置一下环境。我本人不大喜欢使用复杂的IDE(Visual Studio 之类),我比较喜欢使用 Editor + Compiler 这样的组合,比较轻量。今天来谈谈如何避开Visual Studio,直接使用MinGW配置OpenGL。

[Warning] 姿势水平限定: 使用 gcc 进行编译、连接。
如果你没有听说过 gcc , 那么请不要继续往下阅读。

安装

首先下载FreeGlut For MinGW
里面除了根目录下的俩说明文档,大概是这样一个目录结构

├─bin
│  │  freeglut.dll
│  │
│  └─x64
│          freeglut.dll
│
├─include
│  └─GL
│          freeglut.h
│          freeglut_ext.h
│          freeglut_std.h
│          glut.h
│
└─lib
    │  libfreeglut.a
    │  libfreeglut_static.a
    │
    └─x64
            libfreeglut.a
            libfreeglut_static.a

首先,把这三个目录直接解压到你项目的目录1下。
然后就没有然后了,安装已经结束了。

编码

本文先不纠结于编码,请在项目根目录新建一个main.c

├─main.c
├─bin
│  └─x64
├─include
│  └─GL
└─lib
    └─x64

并在里面粘贴以下代码

#include <stdlib.h>
#include <GL/glut.h>

void keyboard(unsigned char key, int x, int y);
void display(void);


int main(int argc, char** argv)
{
  glutInit(&argc, argv);
  glutCreateWindow("GLUT Test");
  glutKeyboardFunc(&keyboard);
  glutDisplayFunc(&display);
  glutMainLoop();

  return EXIT_SUCCESS;
}


void keyboard(unsigned char key, int x, int y)
{
  switch (key)
  {
    case '\x1B':
      exit(EXIT_SUCCESS);
      break;
  }
}


void display()
{
  glClear(GL_COLOR_BUFFER_BIT);

  glColor3f(1.0f, 0.0f, 0.0f);

  glBegin(GL_POLYGON);
    glVertex2f(-0.5f, -0.5f);
    glVertex2f( 0.5f, -0.5f);
    glVertex2f( 0.5f,  0.5f);
    glVertex2f(-0.5f,  0.5f);
  glEnd();

  glFlush();
}

好的,保存一下,接下来开始编译-连接

编译-连接

打开命令行,定位到项目根目录。
如果你使用64位系统:
$ gcc -o bin\x64\main.exe main.c -I"include" -L"lib\x64" -lfreeglut -lopengl32 -Wl,--subsystem,windows
如果你使用32位系统:
$ gcc -o bin\main.exe main.c -I"include" -L"lib" -lfreeglut -lopengl32 -Wl,--subsystem,windows

其中,”include”, “lib”, “lib/x64” 均为相对路径(相对于命令行当前定位),当然你也可以使用绝对路径。

如果没有问题,bin 目录下会出现一个main.exe,可以尝试运行之。

在运行 main.exe 时,它会去它所在的目录找 freeglut.dll 文件,如果找不到或者版本不对,它会闪退

运行

64位:
$ bin\x64\main.exe
32位:
$ bin\main.exe

大功告成!


  1. 并不一定是项目的目录下,你可以有其他的方法:例如将合适的bin文件放在环境变量里,将include中的文件扔到gcc的标准库内,将lib中的文件放到windows的标准库内……等等,但是在本文中会使用一种更为普遍的方式。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值