工作笔记

CLion:OpenGL配置

2019-06-21  本文已影响0人  txfly

本文主要介绍使用CLion开发OpenGL项目时,freeglut 的基本配置。

测试环境: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目录复制到工程中,最终工程结构如下图所示:

    工程目录
  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。完整的工程结构为:

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

#include <GL/glut.h>

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;
}
demo

版权声明:本文为「txfly」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.jianshu.com/p/434aa6e9287a

上一篇下一篇

猜你喜欢

热点阅读