先要安装两个库一个是GLEW(OpenGL Extension Wrangler Library),另一个是GLFW(Graphics Library Framework)html
譯自英文-OpenGL擴展Wrangler庫是一個跨平台的C / C ++庫,可幫助查詢和加載OpenGL擴展。 GLEW提供了高效的運行時機制,用於確定目標平台上支持哪些OpenGL擴展。全部OpenGL擴展都在一個頭文件中公開,該文件是從官方擴展名列表機器生成的ios
GLFW 是配合 OpenGL 使用的轻量级工具程序库,缩写自 Graphics Library Framework(图形库框架)。GLFW 的主要功能是建立并管理窗口和 OpenGL 上下文,同时还提供了处理手柄、键盘、鼠标输入的功能。shell
要进行安装的话须要先安装CMake,能够选择使用GUI 方式 或者命令行的方式。GUI能够在这里下载,命令行的方式的话,能够用brew来安装,方式以下框架
brew install cmake
首先在这里下载源码,下载之后,解压文件,而后进入到文件所在路径,打开终端进入到此路径,执行命令ide
sudo make install
首先在这里下载源码,咱们能够选择直接下载编译好的库,也能够下载源文件而后经过camke来本身编译,区别是若是用cmake库的话,在执行成功之后,会直接将生成的库与头文件分别添加到系统路径,也就是/usr/local/include和/usr/local/lib。这里就本身选择方式了。我在这里介绍利用make工具,本身编译的方式工具
打开cmake 的gui工具,在source code选择下载的glfw路径,这一步须要在这个路径建立一个build目录,用于存放生成的文件。而后在browse build路径选择咱们刚才建立的路径,点击configure。
学习
生成成功会出现以下效果ui
接下来从终端进入到build目录,没错就是刚才咱们建立的build,输入以下指令.net
sudo make sudo make install
执行成功后,剩成的.a文件与头文件就都放到/usr/local/include和/usr/local/lib了。命令行
环境安装好之后,应该是这个样子的
至此,环境安装完毕,接下来就是加入到工程了
首先咱们建立一个command line的工程,而后在build setting里这只user search path,在user search path中设置为:/usr/local/include,这里必定要注意不能选择递归查找,不然会出错。而后设置library search path为:/usr/local/lib。设置这个的做用是工程中明确工程中查找头文件和.a文件的路径。
添加如下库文件:
其中,libglfw3.a、libGLEW.a须要点击 add another,而后进入要路径/usr/local/lib中添加。
配置完成之后,就能够写代码了,进入main.cpp文件,将main中修改以下
#include <iostream> #include <GL/glew.h> #include <GLFW/glfw3.h> void Render(void) { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); { glColor3f(1.0,0.0,0.0); glVertex2f(0, .5); glColor3f(0.0,1.0,0.0); glVertex2f(-.5,-.5); glColor3f(0.0, 0.0, 1.0); glVertex2f(.5, -.5); } glEnd(); } int main(void) { GLFWwindow* win; if(!glfwInit()){ return -1; } win = glfwCreateWindow(640, 480, "OpenGL Base Project", NULL, NULL); if(!win) { glfwTerminate(); exit(EXIT_FAILURE); } if(!glewInit()) { return -1; } glfwMakeContextCurrent(win); while(!glfwWindowShouldClose(win)){ Render(); glfwSwapBuffers(win); glfwPollEvents(); } glfwTerminate(); exit(EXIT_SUCCESS); return 0; }
见证奇迹的时刻到了,运行,你将会看到一个漂亮的三角形
mac 工程搭建,就说这么多了。
感谢如下文章的做者: