示例test.c源码:
#include <GL/glut.h> void init(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glOrtho(-5, 5, -5, 5, 5, 15); glMatrixMode(GL_MODELVIEW); gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0); return; } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0, 0); glutWireTeapot(3); glFlush(); return; } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(0, 0); glutInitWindowSize(300, 300); glutCreateWindow("OpenGL 3D View"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }编译程式时,执行以下指令:
$ gcc -o test test.c -lGL -lGLU -lglut执行:
$ ./test 配置IDE,用cmake作为构建工具其实opengl的程序的cmake写法很简单,因为在linux下,头文件已经自动放到系统include路径了,因此只需要在链接的时候加入链接库,和前面用gcc/g++编译的设定几乎一致,无非是把参数写在CMakeLists.txt中。比如用clion作为IDE,那么对应的CMakeLists.txt为:
cmake_minimum_required(VERSION 3.3) project(hello) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) add_executable(hello ${SOURCE_FILES}) target_link_libraries(${PROJECT_NAME} GL GLU glut) #此行为新增当然,如果你觉得写makefile很容易,那也可以去写的,关键点还是链接库要加入 GL GLU glut三个。
关于cmake的用法,可以参考 CMake快速使用教程 。如果进一步想看看pkg-config是怎么玩的,可以参考 pkg-config的使用方法,即在/usr/lib64/pkgconfig路径下查看对应的pc文件。
glew.h头文件目前还没有用到glew.h头文件,前面fedora的安装中也没有相关的安装。安装方法:
sudo dnf install glew-devel #会安装glew-devel 和 libGLEWmx两个rpm包如果是ubuntu,看起来应该这样安装:
sudo apt-get install libglew-dev