这个教程主要参考了youtube上的视频 Getting Started in OpenGL with GLFW/GLEW in Xcode 6 ,这个视频有点问题,不能照搬。本人通过自己摸(瞎)索(猫)加(碰)下(死)方(耗)的(子)评论,现在给出一种可能安装成功的方案,至于能不能成功,看各位的造化了。

首先,你的 mac 需要有最新的 Xcode,Command line tool, 这些都是最基础的,估计各位已经具备条件了。其次,下载安装 CMake (https://cmake.org/),这个也没有难度,和安装普通软件没有区别。

接下来正式开始配置我们的OpenGL编程环境:

1. 下载 glew (http://glew.sourceforge.net/), 点截图中间红色的 zip。

2. 下载 glfw (https://cmake.org/),点击截图中靠右侧第一个橘黄色的框(Download GLFW 3.1.2)。

3. 打开 Xcode -> Create a new Xcode project -> Command Line Tool

然后给项目取个名字(比如:BaseOpenGL),选择保存路径到桌面(比较方便)。然后,把之前两步下载的 glfw 和 glew 解压并移动到这个项目文件夹下,为了方便,把版本号删掉。

4. 在 glfw 文件夹下创建一个名为 build 的文件夹,glfw 文件夹下存在一个 CMakeLists.txt,因此我们需要用到 CMake 软件编译这个库。打开 CMake,把这个 CMakeLists.txt 拖放到 CMake 窗口靠上方的位置,可以看到其路径被自动输入到两个表单中,一个是:Where is the source code: 另一个是 Where to build the binaries。在后者的路径下,添加一个/build,表示在我们刚刚创建的 build 文件夹中创建二进制文件。

5. 点CMake窗口下方的 Configure,在弹出的菜单中有一个下拉表单,在这个下拉表单中选择 Xcode,表单下方还是采用其默认的“Use default native compilers”,然后点 Done。

6. 第5步后 CMake 的窗口出现了很多背景是红色的字符,在第一个选项: BUILD_SHARED_LIBS 后打钩,点 Configure,发现红色背景消失了,再点 Generate。然后我们就能在之前创建的 build 文件夹中发现很多新文件了:

7. 双击进入 build 文件夹中的 GLFW.xcodeproj 文件。然后注意窗口左上角运行按钮旁边的那个按钮:ALL_BUILD,将其换为 install,并选中 My Mac。然后点击黑色三角运行按钮,编译这个文件。编译之后会出现很多警告,都不要管,这是预料中的事。经过这个步骤,你电脑的某些文件夹中就存在了 glfw 的动态链接库和头文件。
   
 
8. 下面安装 glew,glew 的编译过程与 glfw 不同。首先打开命令行,然后将路径切换到 glew的文件夹内部,然后输入 sudo make install,输入电脑密码。然后电脑就开始对 glew 进行编译了,大概需要10分钟的时间才能编译好,请耐心等待。完成后,在 glew 文件夹下可以看到 include 文件夹和 lib 文件夹,分别存储这个包的头文件和库文件。
 
9. 接下来我们修改 Xcode 的配置环境。首先打开之前创建的那个BaseOpenGL工程,然后选中左侧列表的第一个 BaseOpenGL,点右侧的build Phases,然后点开 Link Binary with Libraries,点+号,搜索 OpenGL.framework, Add.
  
 
10. 然后再点+号打开刚才的窗口,这一次选择 Add Other。然后摁住 shift+command+G,输入 \usr\local 跳转到这个路径下。进入该路径下的 lib 文件夹,然后选择 libGLEW.1.13.0.dylib。重复前面的步骤,再进入到这个文件夹下,选择 libglfw.3.1.dylib。有可能你在这个路径下找不到这俩库(我一开始就没找到),那么尝试在\usr\lib 文件夹下找,找到后把与 GLEW 和 glfw 相关的库文件都拷贝粘贴到 \usr\local\lib 中,把原来的那些删掉。
 
11. 第10步加了一个OpenGL.framework 和两个库文件,这一步将选项卡由 Build Phases 切换到 Build Settings,找到 Search Paths 那一栏,在Header Search Paths 中点+号,输入 /usr/local/include,在 Library Search Paths 中添加:/usr/local/lib。有可能出现 GlEW 或者 GLFW 的头文件没有出现在 /usr/local/include 中的情况,此时请去 /usr/include 中寻找,找到相关的文件夹(GL、GLFW)后拷贝粘贴到 /usr/local/include 中,然后删掉原文件。
 
12. 在 Linking 一栏里找到 Other Linker Flags,添加 -lGLEW 链接参数。至此,基本环境就配置完了,下一步是写代码进行测试。测试代码如下:
#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(, .);
glColor3f(0.0,1.0,0.0);
glVertex2f(-.,-.);
glColor3f(0.0, 0.0, 1.0);
glVertex2f(., -.);
}
glEnd();
} int main(int argc, const char * argv[]) {
GLFWwindow* win;
if(!glfwInit()){
return -;
}
win = glfwCreateWindow(, , "OpenGL Base Project", NULL, NULL);
if(!win)
{
glfwTerminate();
exit(EXIT_FAILURE);
}
if(!glewInit())
{
return -;
}
glfwMakeContextCurrent(win);
while(!glfwWindowShouldClose(win)){
Render();
glfwSwapBuffers(win);
glfwPollEvents();
}
glfwTerminate();
exit(EXIT_SUCCESS);
return ;
}

测试结果为这样一幅图:

 

在 Mac OS X Yosemite 10.10.5 上配置 OpenGL 编程环境的更多相关文章

  1. mac OS X Yosemite (10.10.5) 下 安装vim 7.4笔记

    摘要 前言 需求与mac OS X 自带vim版本的冲突 默认Python解释器问题 并非Mac自带python的 homebrew 1. 前言 本文为自己作死折腾的问题记录 2. 需求与mac OS ...

  2. MAC OS X Yosemite的PyQt4配置记录

    MAC OS X Yosemite的PyQt4配置记录 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系 ...

  3. 在Mac OS X Yosemite 10.10.3 中搭建第一个 ASP.NET 5 Web 项目

    终于有时间在 Mac 上安装一下 ASP.NET 5,网上有许多教程,但是多数的时间比较早了,版本不是最新,搭着 Build 2015 的春风,我也实践一下 Mac OS X 上的 ASP.NET 5 ...

  4. Mac OS X Yosemite 10.10 配置 Apache+PHP 教程注意事项

    刚更新到了 Mac OS X Yosemite 10.10,发现运行Apache出现了一些问题,修正一下! 教程基于 Mac OS X Mavericks 10.9.X,移步:Mac OS X Mav ...

  5. Vmare12(虚拟机)安装Mac OS X Yosemite 10.10

    需要预备的软件如下: OSX10.10的系统镜像,下载好之后将后缀.cdr改成.iso,下载来源如下:    链接:http://pan.baidu.com/s/1sj4ri5R 密码:y86w un ...

  6. 苹果 Mac OS X Yosemite 10.10 新功能特性总结 - 扁平化、主打跨设备的无缝连通性

    苹果在2014.06.03凌晨的 WWDC 2014 大会上正式发布了最新的 OS X Yosemite 桌面操作系统和 iOS 8 移动系统.虽然整场发布会的重心都在软件上,并没有硬件亮相,但软件上 ...

  7. VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2

    原地址:http://zengwu3915.blog.163.com/blog/static/278348972013117114742496/ 所需软件1.VMware Workstation Bu ...

  8. VMware9虚拟机安装MAC OS X Mountain Lion 10.8.2详细图文教程

    VMware虚拟机安装Mac OS X Mountain Lion 10.8.2所需文件:1.Vmware 9.01版下载:点击进入2.Vmware 9.01版汉化文件:点击进入3.VMware Wo ...

  9. Mac OS X Yosemite安装盘U盘制作

    从App Store下载Mac OS X Yosemite安装程序,下载后的安装文件保存在应用程序(/Applications)文件夹中.请注意,此时一定不要直接启动该程序安装 OS X Yosemi ...

随机推荐

  1. 2. Swift元组|可选值|断言

    1. 元组英文名字 Tuple,将多个数据类型(任意类型)组合成一个数据,与c语言的中的机构体有几分相似,功能也是非常强大的,尤其是在定义请求参数,状态之类的地方经常用到. let http404Er ...

  2. 用流从一个指定的网址抓取html代码

    package cn.bdqn.collect.test; import java.io.BufferedReader; import java.io.InputStream; import java ...

  3. 个推,手机推送api的使用

    个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息.所以用户是被动的接收信息.当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实 ...

  4. AlarmManager 实现闹钟的基本功能

    先上效果图 这是一个利用AlarmManager做的最简单的闹钟!迟点再把重复响铃(例如星期一,星期三,重复响铃) 1.MainActivity package com.example.domeref ...

  5. python成长之路【第五篇】:python字符编码

    在2.7环境中我们要写上这一行#-*- coding:utf-8 -*- 为什么我们要加这一行呢?这一样的意思是置顶编码类型为utf-8编码! 首先在看这个问题之前,咱们是否曾想过一个问题? 为什么我 ...

  6. python成长之路【第四篇】:装饰器

    实现装饰器的知识储备: 示例: def f1(): print("f1") 1.函数即“变量” #上面的示例中,函数f1为变量,它指向内存地址.而f1()表示函数执行. 2.高阶函 ...

  7. win安装NLTK出现的问题

    一.今天学习Python自然语言处理(NLP processing) 需要安装自然语言工具包NLTK Natural Language Toolkit 按照教程在官网https://pypi.pyth ...

  8. CSS使用总结

    1.visibility和display的区别: visibility:visible; 显示visibility:hidden; 隐藏,但是保留元素所占的空间display:block;       ...

  9. free函数

    free函数 原型: void free(void *ptr) 功 能: 释放ptr指向的存储空间.被释放的空间通常被送入可用存储区池,以后可在调用malloc.realloc以及calloc函数来再 ...

  10. Search Insert Position [LeetCode]

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...