Mac系統下配置OpenGL環境(小白自學版)
————————————更新一下————————————
有時候,看別人寫的代碼的時候,發現源碼是基於windows系統下寫的,而windows系統下的OpenGL的配置是很多都是基於glut的,大部分的include都是醬紫的
#include <GL/gl.h> #include <GL/glu.h> //#include "GLUT/glut.h" //depends on where you put GLUT
如果不配置glut還要自己改代碼喲,小白我們怎麼辦呢,好吧,看了這篇博客
mac下得OpenGL開發環境 - X805433354的專欄 - 博客頻道 - CSDN.NET
發現mac是直接支持glut的。。。so,我跑過來更新了。。。
如果只是要配置glut的話,那麼直接include就好了,
#include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h>
但是!不要忘記,在target裡面的build phases里添加上OpenGL.framework和GLUT.framework就OK啦︿( ̄︶ ̄)︿
—————————下面是配置glfw和glew的過程(以前寫的)————————————
等下????,這時候你會問,為啥要配置它們呢?因為glut有點老了,就像opencv2.2版本,雖然版本老,但是很還會有很多源碼用,opencv的經典圖書《學習opencv》就用的這個版本,但是現在都3.x了,就是這個意思。
GLUT或者FREEGLUT主要是1.0的基本函數功能;GLEW是使用OPENGL2.0之後的一個工具函數。不同的顯卡公司,也會發布一些只有自家顯卡才支 持的擴展函數,你要想用這數涵數,不得不去尋找最新的glext.h,有了GLEW擴展庫,你就再也不用為找不到函數的介面而煩惱,因為GLEW能自動識別你的平台所支持的全部OpenGL高級擴展函數。也就是說,只要包含一個glew.h頭文件,你就能使用gl,glu,glext,wgl,glx的全部函數。
GLFW無愧於其號稱的lightweight的OpenGL框架,的確是除了跨平台必要做的事情都沒有做,所以一個頭文件,很少量的API,就完成了任務。GLFW的開發目的是用於替代glut的,從代碼和功能上來看,我想它已經完全的完成了任務。
引用來自:OpenGL,glut,glew,glfw,mesa等 - tz_sz的專欄 - 博客頻道 - CSDN.NET
———————————————????我是分割線????——————————————
首先,你的電腦中安裝以下東東:
下載CMake,GLFW,GLEW
CMake: CMake
GLFW: GLFW - Download
GLEW: http://glew.sourceforge.net
Xcode: go to MacAPPStore
Cmake安裝
雙擊dmg文件,然後坐等。和安裝其他蘋果系統app一樣(微笑)。
GLFW 安裝需要CMake
打開CMake
source code 目錄:CMakeLisis.txt 所在目錄
build目錄:自己新建一個文件夾
點configure ,選擇Unixfile,其他默認,然後它就configure了,done之後,界面會有粉紅色的,繼續configure,消滅粉紅色之後generate。done完了之後並沒有結束!
打開terminal,cd到剛才GLFW文件夾下的build文件夾,(直接把這個文件夾選中拖入終端即可)是不是很神奇,恩,反正我是小白... 然後
輸入 make (回車 巴拉巴拉巴拉進度條自己跑)
繼續輸入 make install (巴拉巴拉巴拉進度條自己跑)
然後那些lib和include的文件就寫入/usr/local/裡面了,之後要在Xcode裡面link的。
GLEW 安裝
打開終端,cd 到 glew所在的文件夾,(還是直接把這個文件夾選中然後拖入終端即可)
輸入 sudo make install
然後坐等進度條完事....
Xcode配置
打開Xcode,新建一個控制台project,輸入project的名字什麼的。。。選擇C/C++,finish。
Build phases
接著,選擇project的targets,點擊Build phases,選擇Link Binary With Libraries 點?號,選擇OpenGL.frameworks 。
繼續添加,Add Other 我們要到/usr/local/下面找lib去(如果你在Xcode下配置過opencv,那麼你很熟悉的,微笑...好的,那麼怎麼到/usr/local/下面去呢,出現那個finder文件目錄界面的時候使用快捷鍵cmd+shift+G,就好了)
在/usr/local/lib 找到libGLEW.dylib和libglfw.3.2.dylib 添加上就ok了。
Build Setting
search paths:
Header Search Paths: /usr/local/include
Library Search Paths: /usr/local/lib
Always Search User Paths: YES
終於Finally了,看一下配置成功與否。
點擊那個main.cpp的文件,#include <header>會出現GL、GLFW的候選,說明你配置上了喲...
#include <GL/glew.h>
#include <GLFW/glfw3.h>
然後在貼一段代碼,測試一下,生成一個名字叫window的黑色背景窗口,第一次可能會各種閃,小白我並不知道為啥,再跑一次就好了,蜜汁微笑,反正我也是看了78910還是多少篇攻略才配置成功....
#include <iostream>
#include <GL/glew.h>#include <GLFW/glfw3.h>int main(void){ GLFWwindow* window; /* Initialize the library */ if (!glfwInit())return -1;
/* Create a windowed mode window and its OpenGL context */ window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL); if (!window) { glfwTerminate(); return -1; } /* Make the windows context current */glfwMakeContextCurrent(window);
/* Loop until the user closes the window */ while (!glfwWindowShouldClose(window)) { /* Render here */ /* Swap front and back buffers */ glfwSwapBuffers(window); /* Poll for and process events */ glfwPollEvents();}
glfwTerminate(); return 0; }最後
Ref:
從0開始學OpenGL之Mac篇(1) - KingVVSir_的專欄 - 博客頻道 - CSDN.NET
https://www.youtube.com/watch?v=lTmM3Y8SMOM
感謝CSDN&YouTube的大神的攻略助攻,雖然我看了很多但是這是最靠譜的兩個!
祝入坑的同志們好運~ 如有出入之處,歡迎批評指導~~
咳咳,其實我是個妹紙啊喂。但是為毛滿實驗室沒人help我一下,麻蛋啊啊啊啊啊。
以此攻略,紀念一下。在一直程序媛的路上越走越遠了.......
推薦閱讀:
※OpenGL ES2 對象樹繪製與 VBO組織問題?
※openni,opencv,opengl這三個到底是什麼?有什麼關係?做什麼用?
※震驚!時間之神又給了這個古老的API+了0.1
※對多重採樣(MSAA)原理的一些疑問?
※OpenGL滑鼠操作