參考資料
LearnOpenGL CN 中文版
LearnOpenGL CN 英文版
在 Mac OS X Yosemite 10.10.5 上配置 OpenGL 編程環(huán)境
Mac 10.11.4 opengl開(kāi)發(fā)環(huán)境配置
從0開(kāi)始學(xué)OpenGL之Mac篇(1)
搭建Mac OpenGL開(kāi)發(fā)環(huán)境
1.安裝 HomeBrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安裝GLFW
下載源代碼:
選擇Source package
新建文件夾
GLFW
并把下載好的glfw-3.2.1
文件夾復(fù)制到CLFW
中-
新建一個(gè)
Build
文件夾
高清圖地址:https://upload-images.jianshu.io/upload_images/4185621-018ac60f7163546c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 -
下載 并安裝 CMake
高清圖看這里:https://upload-images.jianshu.io/upload_images/4185621-659b574f254ebe20.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 打開(kāi)
CMake
配置source
(圖片示例)配置
Build
(圖片示例)點(diǎn)擊
Configure
(圖片示例)彈出
Secify the generator for this project
(圖片示例)
選擇Unix Makefiles
與Use default native compilers
點(diǎn)擊
down
后界面變成紅色(圖片示例)再次點(diǎn)擊
Configure
界面變成白色(圖片示例)點(diǎn)擊
Generate
用
CMake
編譯GLFW
庫(kù)
打開(kāi)終端
- cd 到你的
GLFW
目錄下的Build
文件夾- 輸入并回車:
make
- 輸入并回車:
sudo make install
3. 安裝GLEW
- 命令行安裝
brew install glew
- 安裝完成后命令行依次執(zhí)行
sudo make GLEW_DEST=/usr/local
sudo make GLEW_DEST=/usr/local install
注意:
- 不能同時(shí)使用GLAD與GLEW伏伐,否則會(huì)報(bào)錯(cuò),
- 其頭文件的引用膘滨,必須要在
#include <GLFW/glfw3.h>
的上面,否則報(bào)錯(cuò)
#include <GL/glew.h>
//#include <glad/glad.h>
#include <GLFW/glfw3.h>
4. 創(chuàng)建項(xiàng)目
- 創(chuàng)建MacOs項(xiàng)目圖片示例
- 刪除多余文件圖片示例
刪除:main.m昌妹、AppDelegate.h捶枢、 AppDelegate.m、 ViewContreoller.h飞崖、 ViewController.m - 創(chuàng)建
c++
文件main.cpp
與main.hpp
圖片示例:創(chuàng)建文件
5. 配置 Xcode
1. 添加 OpenGL.framework烂叔、libglfw.3.2.dylib、libGLEW.2.1.0.dylib
添加OpenGL.framework (圖片示例)
build Phases
~>Link Binary with Libraries
~>點(diǎn)擊加號(hào)
~>搜索OpenGL.framework
~>add
添加 libglfw.3.2.dylib 與 libGLEW.2.1.0.dylib
build Phases
~>Link Binary with Libraries
~> 點(diǎn)擊Add Other...
: 圖片示例
~> 按住鍵盤(pán)shift+command+G
圖片示例
~> 輸入/usr/local/lib
并回車
~> 尋找libglfw.3.2.dylib
(或者libGLEW.2.1.0.dylib
)圖片示例
~>add
2. 配置 Library Search Paths 與 Header Search Paths
6. 檢驗(yàn)
- 編譯檢驗(yàn):
如果編譯成功固歪,那么說(shuō)明環(huán)境搭建完成 - 代碼檢驗(yàn):
復(fù)制代碼到main.cpp
中并運(yùn)行
#include "main.hpp"
#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);
{
glColor4f(1.0,0.0,0.0,0.3);
glVertex2f(0, .5);
glColor4f(0.0,1.0,0.0,0.8);
glVertex2f(-.5,-.5);
glColor4f(0.0, 0.0, 1.0,1);
glVertex2f(.5, -.5);
}
glEnd();
}
int main(int argc, const char * argv[]) {
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;
}