MAC OpenGL 環境搭建
基礎庫介紹
先要安裝兩個庫一個是GLEW(OpenGL Extension Wrangler Library),另外一個是GLFW(Graphics Library Framework)
GLEW
譯自英文-OpenGL擴展Wrangler庫是一個跨平台的C / C ++庫,可幫助查詢和加載OpenGL擴展。 GLEW提供了高效的運行時機制,用於確定目標平台上支持哪些OpenGL擴展。所有OpenGL擴展都在一個頭文件中公開,該文件是從官方擴展名列表機器生成的
GLFW
GLFW 是配合 OpenGL 使用的輕量級工具程序庫,縮寫自 Graphics Library Framework(圖形庫框架)。GLFW 的主要功能是創建並管理窗口和 OpenGL 上下文,同時還提供了處理手柄、鍵盤、鼠標輸入的功能。
進入安裝步驟
准備工作
要進行安裝的話需要先安裝CMake,可以選擇使用GUI 方式 或者命令行的方式。GUI可以在這里下載,命令行的方式的話,可以用brew來安裝,方式如下
brew install cmake
安裝GLEW
首先在這里下載源碼,下載以后,解壓文件,然后進入到文件所在路徑,打開終端進入到此路徑,執行命令
sudo make install
安裝GLFW
首先在這里下載源碼,我們可以選擇直接下載編譯好的庫,也可以下載源文件然后通過camke來自己編譯,區別是如果用cmake庫的話,在執行成功以后,會直接將生成的庫與頭文件分別添加到系統路徑,也就是/usr/local/include和/usr/local/lib。這里就自己選擇方式了。我在這里介紹利用make工具,自己編譯的方式
打開cmake 的gui工具,在source code選擇下載的glfw路徑,這一步需要在這個路徑創建一個build目錄,用於存放生成的文件。然后在browse build路徑選擇我們剛才創建的路徑,點擊configure。
生成成功會出現如下效果
接下來從終端進入到build目錄,沒錯就是剛才我們創建的build,輸入如下指令
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文件的路徑。
添加要鏈接的framework
添加以下庫文件:
- Cocoa.framework
- OpenGL.framwork
- GLUT.framework
- CoreVideo.framework
- IOKit.framework
- libglfw3.a
- libGLEW.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 工程搭建,就說這么多了。
感謝以下文章的作者: