CLion配置OpenGL

CLion+MinGW3.20环境下配置OpenGL

这个环境配置竟然配置了两天,,在网上找了很多方法都是不行。。应该是能力不够。。。整合了几篇的内容,又一次尝试还是失败,最后脑子一抽,在CMake文件中添加了一句话就OK了。。

不说废话了

CLion的中我是用的是MinGW,CLion中配置MinGW我就不说了,网上都有很简单的!

MinGw的Include文件夹中本就包含一个GL文件夹。

1. 首先下载freeglut https://www.transmissionzero.co.uk/software/freeglut-devel/

选择for mingw版本的

2. 打开压缩包,里面有bin,include,lib三个文件夹

a、将压缩包/include/GL中的文件拷贝到mingw/include/GL文件夹下

b、64位机的话将压缩包/lib/x64中的.a文件拷贝到mingw/lib文件夹下,32位机的话应该拷的是压缩包/lib中的两个.a文件

c、64位机把压缩包/bin/x64里的文件拷贝到C://Windows//SysWOW64下,32位机压缩包/bin下文件到C://Windows//System32下(c步骤不知道有没有用。。。。。。CLion配置OpenGL

3. 新建CLion工程,修改CMake文件

cmake_minimum_required(VERSION 3.9)
project(OpenGL_3)

link_directories("C:/Program Files/MinGW/lib")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")

add_executable(OpenGL_3 main.cpp)
target_link_libraries(OpenGL_3 freeglut_static opengl32 winmm gdi32 glu32.lib)
主要是第四行那句
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")

其中OpenGL_3是我的项目名

然后在main.cpp中编写就ok啦

附上一个我的一个测试代码。。

#include <GL/glut.h>
#include <stdio.h>
void ChangeSize(GLsizei w,GLsizei h){
    if(w<1) w=1;
    if(h<1) h=1;
    printf("%d %d\n",w,h);
    glViewport(0,0,w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if(w<=h)
        glOrtho(-30.0,30.0,-30.0*(GLfloat)h/(GLfloat)w,30.0*(GLfloat)h/(GLfloat)w,-50.0,50.0);
    else
        glOrtho(-30.0*(GLfloat)w/(GLfloat)h,30.0*(GLfloat)w/(GLfloat)h,-30.0,30.0,-50.0,50.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
void DrawMyObjects() {
    //画四边形
    glBegin(GL_QUADS);
    glColor3f(0.7,0.5,0.2);
    glVertex2f(-7,-3);
    glVertex2f(-5.5,-1);
    glVertex2f(-1,-0.5);
    glVertex2f(-1,-4);
    glColor3f(0.5,0.7,0.2);
    glVertex2f(2,-6.25);
    glVertex2f(2.5,-1);
    glVertex2f(6.5,1);
    glVertex2f(4.5,-6.25);
    glEnd();
}
void RenderScene()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0,1.0,0.0);
    DrawMyObjects();
    glFlush();
}
int main(int argc, char *argv[]){
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
    glutInitWindowSize(600,600);

    glutCreateWindow("My first");

    glClearColor(0.51,0.51,0.51,0.5);

    glutReshapeFunc(ChangeSize);
    glutDisplayFunc(RenderScene);

    glutMainLoop();
    return 0;
}

运行结果

CLion配置OpenGL