標籤:

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

youtube.com/watch?

感謝CSDN&YouTube的大神的攻略助攻,雖然我看了很多但是這是最靠譜的兩個!

祝入坑的同志們好運~ 如有出入之處,歡迎批評指導~~

咳咳,其實我是個妹紙啊喂。但是為毛滿實驗室沒人help我一下,麻蛋啊啊啊啊啊。

以此攻略,紀念一下。在一直程序媛的路上越走越遠了.......

推薦閱讀:

OpenGL ES2 對象樹繪製與 VBO組織問題?
openni,opencv,opengl這三個到底是什麼?有什麼關係?做什麼用?
震驚!時間之神又給了這個古老的API+了0.1
對多重採樣(MSAA)原理的一些疑問?
OpenGL滑鼠操作

TAG:OpenGL | Mac | Xcode |