Mac OpenGL 環境設定(Xcode)

2020-10-19 11:00:28

Mac OpenGL 環境設定(Xcode)

3D圖形程式設計工具課要用到OpenGL,找了好多教學,有的因為Xcode版本更新高於老師用的了,也遇到了奇奇怪怪的bug。自己總結一份經驗吧,以免自己後面設定的時候忘了。

  1. 安裝Homebrew(這真的是最方便的設定方法了)

安裝教學指路👉https://blog.csdn.net/y201314an/article/details/84179536
一些tips指路👉https://blog.csdn.net/delphiwcdj/article/details/19679891
官網指路(內含安裝指令)👉https://brew.sh (如果你看到我的筆記已經時間比較久遠,建議按照官網最新的安裝指令安裝)。

  1. 安裝OpenGL需要的包

我們老師要求使用的包是GLEW、glfw和freeglut。我也只安裝了這幾個包。
分別在終端輸入(一個安裝完再安裝另一個)

brew install glew
brew install glfw
brew install freeglut

可以測試一下是否安裝完成👇

brew list

列表裡面有這三個包就可以了(如下圖)
brew列表裡有這三個包就成功了

系統會預設把這三個包裝在/usr/local/Cellar裡面,同時也可以在/usr/local/lib裡面找到

  1. 設定Xcode

我們老師的示範程式參照進的包是<GL/glut.h>,這個包在Xcode 10.8版本之後就棄用了,現在改成了似乎是<GLUT/glut.h>。如果參照了現在的包在使用原包裡面的函數,例如glutInit,就會有警告,讓人很難受。所以我還是想辦法用了老師示範的包。

  • 建立Xcode程式,選擇macOS->Command Line Tool->按照步驟新建(語言我們課程要求C)
    在這裡插入圖片描述

  • 最左側欄選中專案藍標->Deployment Info選擇10.8 (如果不需要用<GL/glut.h>的包,可以忽略這一步。

  • Framework and Libraries->點選+ -> 搜尋方塊裡輸入OpenGL,選擇OpenGL包->add
    在這裡插入圖片描述

  • Framework and Libraries相同方法新增GLUT包。
    在這裡插入圖片描述

  • Framework and Libraries ->點選+ -> Add Files -> 快捷鍵(Command+Shift+G)跳轉系統庫->輸入/usr/local/lib -> Go ->選擇libGLEW(任何版本都可以)
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

  • 相同方法先後再新增libglfw、libglut包。
    包新增完後效果如圖。
    在這裡插入圖片描述

  • 相同介面,選擇Build Settings -> All -> Search Paths -> Always Search User Paths選擇Yes -> Header Search Paths 加入/usr/local/include -> Library Search Paths 改成/usr/local/lib
    在這裡插入圖片描述

  1. 設定完成!
    可以輸入程式碼測試:
#include <GL/glut.h>

void mydisplay(){
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glVertex2f(-0.5, -0.5);
    glVertex2f(-0.5, 0.5);
    glVertex2f(0.5, 0.5);
    glVertex2f(0.5, -0.5);
    glEnd();
    glFlush();
}

int main(int argc, const char * argv[]) {
    glutInit(&argc, argv);
    glutCreateWindow("simple");
    glutDisplayFunc(mydisplay);
    glutMainLoop();
}

能夠執行出一個白色小正方形就可以啦!

  1. 可能遇到的問題
  • 注意以上的輸入內容,usr不是user,以及路徑不要漏掉「/」
  • 如果像我一樣遇到下圖的執行bug(顯示執行緒錯誤)
    在這裡插入圖片描述
    就把前面新增的Framework and Library那三個後加入的包刪掉(選中包,點選‘-’),刪除後呈現下圖樣子
    在這裡插入圖片描述
    但由於左邊欄Frameworks那裡那三個包仍然存在,所以不會影響執行結果但可以避免這個執行緒錯誤。
    我也不知道為什麼,知道的小夥伴可以告訴我,或者有更好的解決辦法歡迎留言。
  • 暫時沒有其他問題,再遇到的話再補充!也歡迎大家在留言區補充。

最後感謝我安裝過程中找過的各個經驗貼!!!(看過太多不記得具體是哪幾個了