Mac配置OpenGL环境
簡(jiǎn)介
入門(mén)學(xué)習(xí)OpenGL,網(wǎng)上查詢OpenGL的配置環(huán)境相關(guān),配置的樣式多種多樣。
但總的來(lái)說(shuō),無(wú)非如下幾個(gè)步驟:
- 下載gltools、glew、glfw、glut、 glad、glm等庫(kù)文件
- Xcode中配置Build Settings內(nèi)的Search Header Paths和Search Libary Paths
- Xcode中配置Build Phases內(nèi)的Link Binary With Libraries
在Mac中,openGL、glut的包,已經(jīng)自帶,無(wú)需關(guān)注。
入門(mén)學(xué)習(xí)使用: Learn OpenGL
環(huán)境:Mac: 10.14.6 Xcode: 11.3.1
語(yǔ)言: C/C++
個(gè)人Demo:OpenGLDemo
brew安裝cmake、glfw、glew
brew是Mac OS平臺(tái)下的軟件包管理工具, 通過(guò)終端命令可以實(shí)現(xiàn)包的安裝,卸載,更新等。
打開(kāi)終端,輸入命令:
安裝成功后會(huì)提示你輸入密碼, 安裝成功后提示: “Installation successful”
常用的命令有:
倘若因?yàn)榫W(wǎng)絡(luò)不穩(wěn)定,導(dǎo)致安裝失敗,需要對(duì)它進(jìn)行卸載重裝,其命令為:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"成功安裝brew后, 可直接運(yùn)行如下命令:
// 方式1 brew install cmake glfw glew// 方式2 brew install cmake brew install glfw brew install glewglfw和glew安裝成功后,路徑都在: /usr/local/Cellar 中
glfw的官網(wǎng):GLFW
glew的官網(wǎng):GLEW
glTools下載
它是《OpenGL 超級(jí)寶典》的作者對(duì)OpenGL接口的一些封裝,在Learn OpenGL上不會(huì)用到。下載
下載并解壓到任意目錄下, 通過(guò)終端命令進(jìn)入該目錄:
cd build cmake .. make sudo make install如上命令主要做了兩件事:
- 對(duì)文件進(jìn)行編譯生成庫(kù)文件: libgltools.dylib、libgltools.a
- 將include文件安裝到**/usr/local/include**中
- 將庫(kù)文件安裝到**/usr/local/lib**中
GLM下載
OpenGL Mathematics為OpenGL編寫(xiě)的第三方數(shù)學(xué)算法庫(kù)
不依賴其他包, 不需要編譯,下載后直接將頭文件放入指定的目錄即可進(jìn)行引用。
下載地址: glm
使用GLM時(shí),類似示例:
#include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/type_ptr.hpp>void DebugGLM() {glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);// 譯注:下面就是矩陣初始化的一個(gè)例子,如果使用的是0.9.9及以上版本// 初始化編寫(xiě)為:glm::mat4 trans = glm::mat4(1.0f);// 否則初始化編寫(xiě):glm::mat4 trans;// 如果方式不一致,就會(huì)出現(xiàn)結(jié)果是很大數(shù)字的顯示,切記glm::mat4 trans = glm::mat4(1.0f);trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));vec = trans * vec;std::cout << vec.x << vec.y << vec.z << std::endl; // 210表示正確 }glad下載
參考: LearnOpenGL 配置GLAD
它是一個(gè)開(kāi)源的庫(kù), 需要打開(kāi)glad的在線服務(wù)進(jìn)行配置,生成后然后下載zip文件即可。在線服務(wù)
- Language選擇C/C++
- Specification選擇OpenGL
- gl選擇版本3.3即可
- 勾選Generate a loader
- 確認(rèn)無(wú)誤后,勾選GENERATE
生成成功以后,如下圖:
點(diǎn)擊標(biāo)記部分進(jìn)行下載即可。
環(huán)境配置
點(diǎn)擊加號(hào)添加配置相關(guān):
這些配置,主要用于項(xiàng)目Build Settings下的Header Search Paths和Library Search Paths的配置。比如:
- Header Search Paths, 配置glew, glfw相關(guān)include,可以使用:$(glew_header) $(glfw_header)
- Library Search Paths, 配置glew, glfw相關(guān)lib, 可以使用: $(glew_lib) $(glfw_lib)
配置項(xiàng)目Build Phases下的Link Binary With Libraries相關(guān), 這些配置添加后,會(huì)添加到framework中。
mac系統(tǒng)的自帶有:GLUT.framework、OpenGL.framwork相關(guān),直接搜索添加就可以
其他的比如glew、glfw相關(guān), 可以點(diǎn)擊Add Other…,選擇add Files…
通過(guò)快捷鍵Command+Shift+G或者前往文件夾進(jìn)入到/usr/local/目錄,選擇對(duì)應(yīng)包的lib目錄下的.dylib文件。
至此基本的環(huán)境配置算是配置結(jié)束, 在main.cpp粘貼如下代碼:
效果圖,如下:
Learn OpenGL GitHub環(huán)境配置
學(xué)習(xí)OpenGL的過(guò)程中,參考資料是:
- LearnOpenGL 教程
- LearnOpenGL Code
關(guān)于Code的生成步驟:
- 下載Code
- 打開(kāi)終端命令,進(jìn)入到目錄中,運(yùn)行命令:
- 如果Xcode生成項(xiàng)目工程文件的時(shí)候報(bào)錯(cuò),類似如下:
官方示例提供了教程當(dāng)中的所有示例demo相關(guān), 可用于我們學(xué)習(xí),參考。
建議
在學(xué)習(xí)OpenGL的過(guò)程,我們會(huì)在Xcode項(xiàng)目創(chuàng)建多個(gè)示例程序,用于學(xué)習(xí)查看各種各樣的效果。
步驟是: 右上角選擇File -> New -> Target…后, 選擇Command Line Tool新建示例。
在每個(gè)CLT示例中,需要重復(fù)做如下幾件事:
- 需要在Build Settings中配置Header Search Paths和Library Search Paths所需要的文件相關(guān)
- 需要在Build Phases中配置Link Binary With Libraries所需要的庫(kù)文件相關(guān)
這樣的配置,固然是可以的,但是會(huì)有幾個(gè)問(wèn)題出現(xiàn):
- OpenGL的某些實(shí)現(xiàn)需要引用一些頭文件相關(guān),他們并不是在usr/local中放置,比如:glad、glm等
- 配置庫(kù)文件,需要記住一些常用庫(kù)的路徑
為避免這些問(wèn)題,可以參考著官方示例的目錄結(jié)構(gòu):
- 將編寫(xiě)的Command Line Tool的示例文件放置到src對(duì)應(yīng)的章節(jié)目錄中
- 將第三方的.a、.dylib從usr/local中拷貝放到libs目錄文件下
- 將第三方的.h、.cpp文件分別放置到includes和src目錄中
- 將資源,shader相關(guān)放置到Resources目錄中
優(yōu)點(diǎn):
- 解決引用庫(kù)文件進(jìn)行繁瑣的操作的步驟
注意:
如果項(xiàng)目運(yùn)行報(bào)錯(cuò),一般是沒(méi)有獲取到對(duì)應(yīng)的庫(kù)文件
記得使用命令: brew install glew glfw, 下載成功后,就對(duì)應(yīng)的**.dylib和.a**文件放置到libs目錄內(nèi)
本人新手,能力有限,如果文章對(duì)您引起了誤導(dǎo),請(qǐng)及時(shí)告知,避免影響更多的人
總結(jié)
以上是生活随笔為你收集整理的Mac配置OpenGL环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度剖析5款主流杀毒软件
- 下一篇: 安卓手机修改ip软件_为什么苹果手机不用