CLion:OpenGL配置

测试环境:CLion + MinGW64 + freeglut 3.0

  1. 下载freeglut,注意下载MinGW版本文件。
    https://www.transmissionzero.co.uk/files/software/development/GLUT/freeglut-MinGW.zip

  2. 创建工程,把freeglut-MinGW.zip里面的includelib目录复制到工程中,最终工程结构如下图所示:

    CLion:OpenGL配置_第1张图片
    工程目录

  3. 修改cmake,添加freeglut头文件和库,并设置输出目录,修改后的CMakeLists.txt内容为:

cmake_minimum_required(VERSION 3.14)
project(demo C)

include_directories(include)
link_directories(lib/x64)

set(CMAKE_C_STANDARD 11)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)

add_executable(demo main.c)

#target_link_libraries(demo freeglut opengl32)
target_link_libraries(demo libopengl32.a  libfreeglut.a)

注意:本次使用64位编译器,所以要使用link_directories(lib/x64)

  1. 编译工程,并把压缩包freeglut-MinGW.zip里面的bin\x64\freeglut.dll复制到输出目录中(输出目录由set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)指定),具体目录为cmake-build-debug/bin。完整的工程结构为:

    CLion:OpenGL配置_第2张图片
    工程目录

  2. 测试。如果运行出现Process finished with exit code -1073741515 (0xC0000135)或者类似错误时,可能是freeglut.dll和生成的exe文件不在同一目录,或者freeglut.dll的版本不对。

#include 

void render() {
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_TRIANGLES);
    glVertex3f(-0.5f, -0.5f, 0.0f);
    glVertex3f(0.5f, 0.5f, 0.0f);
    glVertex3f(0.0f, 0.5f, 0.0f);
    glEnd();
    glFlush();
}


int main(int argc, char *argv[]) {
    glutInit(&argc, argv);
    glutInitWindowSize(480, 320);
    glutInitWindowPosition(200, 100);
    glutCreateWindow("OpenGL Demo");

    glutDisplayFunc(render);

    glutMainLoop();
    return 0;
}
CLion:OpenGL配置_第3张图片
demo

你可能感兴趣的:(CLion:OpenGL配置)