windows下OpenGL开发环境配置 工具集:CLion + MinGW + FreeGlut

前言:

        开发环境的配置是学习OpenGL的第一道拦路虎,下文详细介绍了开发环境的配置

 

一、开发工具及库的下载与安装

1.C/C++ IDE选择的是Jetbrains Clion

jetrains clion下载链接

2.MinGW  C/C++编译器

MinGW下载链接

安装如图所示选中的包

 

windows下OpenGL开发环境配置 工具集:CLion + MinGW + FreeGlut_第1张图片

3.配置Clion Toolchains

      Files菜单下找到Settings

      搜索如下选项 Toolchains,按如下图配置(注:根据MinGW安装位置做适当修改)

windows下OpenGL开发环境配置 工具集:CLion + MinGW + FreeGlut_第2张图片4.下载FreeGlut(OpenGL库),链接如下: 

FreeGlut(OpenGL库)

压缩包打开后如图示

解压,记住解压的目录 

解压目录下的文件结构如下图

windows下OpenGL开发环境配置 工具集:CLion + MinGW + FreeGlut_第3张图片

二、在系统目录里添加动态链接库 ( freeglut.dll )以供程序执行过程调用 

   将 freeglut\bin\  freeglut.dll 放到 C:\WINDOWS\SysWOW64 目录下

           (很重要,否则构建的程序虽然可以通过编译,但无法运行)

   

三、测试开发环境

  1. 创建C++Project,项目名称定为OpenGLTest,我这里选择C++ 11版本
  2. 编写CMakeList.txt   (关于CMakeLists.txt参考信息 前面也有一些Clion的新手教程可以看看)

   内容如下:

cmake_minimum_required(VERSION 3.12)
project(OpenGLTest)
set(CMAKE_CXX_STANDARD 11)


set(Test OpenGLTest)                                    #生成项目名称设置为Test
set(OPENGL_FILE "E:/Program Files/freeglut")            #设置FreeGlut库根目录
INCLUDE_DIRECTORIES(${OPENGL_FILE}/Include)             #设置包含头文件
link_directories(${OPENGL_FILE}/lib E:/MinGW/lib)       #设置静态链接库



add_executable(${Test} main.cpp)                        #添加目标文件
target_link_libraries(${Test} freeglut glu32 opengl32)  #链接目标问价

3.在main.cpp中写OpenGL代码

/*
 * Hello.cpp: Test OpenGL C/C++ Setup
 */

#include   // GLUT, includes glu.h and gl.h

/* Handler for window-repaint event. Call back when the window first appears and
   whenever the window needs to be re-painted. */
void display() {
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set background color to black and opaque
    glClear(GL_COLOR_BUFFER_BIT);         // Clear the color buffer

    // Draw a Red 1x1 Square centered at origin
    glBegin(GL_QUADS);              // Each set of 4 vertices form a quad
    glColor3f(1.0f, 0.0f, 0.0f); // Red
    glVertex2f(-0.5f, -0.5f);    // x, y
    glVertex2f( 0.5f, -0.5f);
    glVertex2f( 0.5f,  0.5f);
    glVertex2f(-0.5f,  0.5f);
    glEnd();

    glFlush();  // Render now
}

/* Main function: GLUT runs as a console application starting at main()  */
int main(int argc, char** argv) {
    glutInit(&argc, argv);                 // Initialize GLUT
    glutCreateWindow("OpenGL Setup Test"); // Create a window with the given title
    glutInitWindowSize(320, 320);   // Set the window's initial width & height
    glutInitWindowPosition(50, 50); // Position the window's initial top-left corner
    glutDisplayFunc(display); // Register display callback handler for window re-paint
    glutMainLoop();           // Enter the infinitely event-processing loop
    return 0;
}

 

你可能感兴趣的:(OpenGL)