本文主要介绍使用CLion开发OpenGL项目时,freeglut 的基本配置。
测试环境:CLion + MinGW64 + freeglut 3.0
-
下载
freeglut
,注意下载MinGW版本文件。
https://www.transmissionzero.co.uk/files/software/development/GLUT/freeglut-MinGW.zip -
创建工程,把
工程目录freeglut-MinGW.zip
里面的include
和lib
目录复制到工程中,最终工程结构如下图所示:
-
修改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)
。
-
编译工程,并把压缩包
工程目录freeglut-MinGW.zip
里面的bin\x64\freeglut.dll
复制到输出目录中(输出目录由set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
指定),具体目录为cmake-build-debug/bin
。完整的工程结构为:
-
测试。如果运行出现
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
网友评论