Mac10.13.6搭建OPenGL环境
参考资料
LearnOpenGL CN 中文版
LearnOpenGL CN 英文版
在 Mac OS X Yosemite 10.10.5 上配置 OpenGL 编程环境
Mac 10.11.4 opengl开发环境配置
从0开始学OpenGL之Mac篇(1)
搭建Mac OpenGL开发环境
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
文件夹复制到CLFW
中 -
新建一个
高清图地址:https://img.haomeiwen.com/i4185621/018ac60f7163546c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240Build
文件夹
-
下载 并安装 CMake
高清图看这里:https://img.haomeiwen.com/i4185621/659b574f254ebe20.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
-
打开
CMake
配置source
(图片示例) -
配置
Build
(图片示例) -
点击
Configure
(图片示例) -
弹出
Secify the generator for this project
(图片示例)
选择Unix Makefiles
与Use default native compilers
-
点击
down
后界面变成红色(图片示例) -
再次点击
Configure
界面变成白色(图片示例) -
点击
Generate
-
用
CMake
编译GLFW
库
打开终端
- cd 到你的
GLFW
目录下的Build
文件夹- 输入并回车:
make
- 输入并回车:
sudo make install
3. 安装GLEW
- 命令行安装
brew install glew
- 安装完成后命令行依次执行
sudo make GLEW_DEST=/usr/local
sudo make GLEW_DEST=/usr/local install
注意:
- 不能同时使用GLAD与GLEW,否则会报错,
- 其头文件的引用,必须要在
#include <GLFW/glfw3.h>
的上面,否则报错
//#include <GL/glew.h>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
4. 创建项目
- 创建MacOs项目图片示例
- 删除多余文件图片示例
删除:main.m、AppDelegate.h、 AppDelegate.m、 ViewContreoller.h、 ViewController.m - 创建
c++
文件main.cpp
与main.hpp
图片示例:创建文件
5. 配置 Xcode
1. 添加 OpenGL.framework、libglfw.3.2.dylib、libGLEW.2.1.0.dylib
添加OpenGL.framework (图片示例)
build Phases
~>Link Binary with Libraries
~>点击加号
~>搜索OpenGL.framework
~>add
添加 libglfw.3.2.dylib 与 libGLEW.2.1.0.dylib
build Phases
~>Link Binary with Libraries
~> 点击Add Other...
: 图片示例
~> 按住键盘shift+command+G
图片示例
~> 输入/usr/local/lib
并回车
~> 寻找libglfw.3.2.dylib
(或者libGLEW.2.1.0.dylib
)图片示例
~>add
2. 配置 Library Search Paths 与 Header Search Paths
6. 检验
- 编译检验:
如果编译成功,那么说明环境搭建完成 - 代码检验:
复制代码到main.cpp
中并运行
#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;
}
得到图片