先要安裝兩個庫一個是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 工程搭建,就說這麼多了。
感謝如下文章的做者: