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 工程搭建,就说这么多了。


感谢以下文章的作者:

Mac系统下配置OpenGL环境(小白自学版)

OpenGL学习笔记(二)—— (macOS)环境搭建

MAC OpenGL 环境搭建的更多相关文章

  1. OpenGL环境搭建Windows+Mac+Linux

    OpenGL环境搭建Windows+Mac+Linux Mac平台下 下载列表:GLFWcmake 下载的GLFW解压缩 然后安装cmake, 安装好cmake之后打开 1.browse source ...

  2. Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  3. appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  4. Mac Appium环境搭建

    安装brew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装java brew install ...

  5. 1.OpenGL mac开发环境搭建记录

    1.安装GLEW 和GLFW,转摘至:https://www.cnblogs.com/pretty-guy/p/11357793.html 2.开始测试,整个工程报错,关键信息如下: code sig ...

  6. Mac 性能测试环境搭建——理论篇

    此篇为博主原创内容,若转载请写明出处,谢谢! 前言在搭建之初,我们要思考的2个点:1.性能怎么测试?2.性能的测试环境如何搭建(该如何去做)?1.什么是性能?    个人理解为:合理的架构.低耦合.高 ...

  7. Linux OpenGL 实践篇-1 OpenGL环境搭建

    本次实践所使用环境为CentOS 7. 参考:http://www.xuebuyuan.com/1472808.html OpenGL开发环境搭建: 1.opengl库安装 opengl库使用mesa ...

  8. MAC自动化环境搭建

    UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...

  9. GLFW+GLAD OpenGL Mac开发环境搭建

    前言 OpenGL 是什么?The Industry Standard for High Performance Graphics 这是官方解释.说白了他就是一套标准接口.对,是接口,并没有实现具体的 ...

随机推荐

  1. css 布局(圣杯、双飞翼)

    一. 圣杯布局. 左右固宽,中间自适应 三列布局,中间宽度自适应,两边定宽: 中间部分要在浏览器中优先展示渲染: 具体步骤:1.设置基本样式2.圣杯布局是一种相对布局,首先设置父元素container ...

  2. mysql left join 用法说明

    left join中关于where和on条件的几个知识点: 1.多表left join是会生成一张临时表,并返回给用户 2.where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件 ...

  3. 搭建Linux C语言开发环境

    1.操作系统 Windows操作系统:windows 7 and windows 10 2.开发工具和编译工具 开发工具:notpad++ 和 vim 编译工具:Cygwin64 Terminal 3 ...

  4. 洛谷 P3455 [POI2007]ZAP-Queries (莫比乌斯函数)

    题目链接:P3455 [POI2007]ZAP-Queries 题意 给定 \(a,b,d\),求 \(\sum_{x=1}^{a} \sum_{y=1}^{b}[gcd(x, y) = d]\). ...

  5. 使用正则限制input框只能输入数字/英文/中文等等

    常用HTML正则表达式 1.只能输入数字和英文的: 复制代码代码如下: <input onkeyup="value=value.replace(/[/W]/g,'') " o ...

  6. Apache和Tomcat的区别是什么?

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  7. node js 函数和对象

    1.函数 1.1匿名函数 函数声明 function fn(){  } 函数表达式 var fun=function(){  } 函数名称和函数名称()的区别 fun/fn   fun()/fn() ...

  8. python--函数基础一

    一.函数意义:可读性,复用性强 # def my_len(s): #def 关键词开头,my_len函数名 # i=0 # for k in s: # i+=1 # print(i) # return ...

  9. python爬虫爬取ip记录网站信息并存入数据库

    import requests import re import pymysql #10页 仔细观察路由 db = pymysql.connect("localhost",&quo ...

  10. sysprep

    今天做虚拟机模板,以及克隆.单纯的克隆会造成很多冲突问题的产生,所以在这里,windows自带的sysprep功能很好的解决了这一点. 路径位于:C:\Windows\System32\Sysprep ...