分类: OpenGL2015-01-15 15:52 210人阅读 评论(0) 收藏 举报
 

目录(?)[+]

 

主要参考http://www.cnblogs.com/openxxs/p/4055916.html

整理自之前使用的163博客原创文章。

GLSL项目中需要使用GLEW库,因此先要安装GLEW库和在Xcode中配置GLEW。要使GLEW在Xcode中被正确链接,又需要通过MacPorts来安装GLEW。下文以MacPorts-->GLEW-->GLSL的顺序来阐述。
环境:系统 OS X 10.9.2 (13C64),工具 Xcode 5.1,图形卡 Intel Iris 1024 MB

1 MacPorts安装

MacPorts是与apt-get和yum类似的软件管理包,下载与系统对应的安装包后进行安装(安装过程中会联网进行更新,导致安装过程很久,建议断网安装)。安装之后打开终端运行
$ sudo port -v selfupdate
进行更新。如果更新时在如下状态下卡的时间很久,
--->  Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/release/tarballs/ports.tar
receiving file list ... done
ports.tar

使用control+z终止更新,终端输入

$ sudo vim /opt/local/etc/macports/sources.conf

打开配置文件,更改最后一行的默认下载地址(参考“解决安装macports,不能更新的问题”,参考下载网址列表),如可修改为韩国镜像:

#rsync://rsync.macports.org/release/tarballs/ports.tar [default]
#http://www.macports.org/files/ports.tar.gz [default]
rsync://cjj.kr.rsync.macports.org/macports/release/tarballs/ports.tar

改好后wq保存退出,再次运行

$ sudo port -v selfupdate

进行更新,更新成功后会显示如下信息:

--->  MacPorts base is already the latest version
The ports tree has been updated. To upgrade your installed ports, you should run port upgrade outdated

安装过程中遇到其它问题请戳:

Mac OS X Lion安装MacPorts(让你在Mac的Shell下更加游刃有余)

Mac中MacPorts安装和使用

Mac OS X中MacPorts安装和使用

2 GLEW库安装

glew库主要有如下三种安装方式:1)在Xcode中直接导入framework(下载地址);2)编译glew源代码进行安装(参考“Installing GLEW in Mac OS X (Leopard)”);3)通过MacPorts进行安装。

实测了三种方式,均可成功安装glew库,但前两种方式在Xcode中链接不成功,本文通过MacPorts进行安装(参考“GLEW: Apple Mach-O Linker (Id) Error”)。

终端输入

$ sudo port install glew

进行安装,安装成功后显示:

--->  Installing glew @1.10.0_0
---> Activating glew @1.10.0_0
---> Cleaning glew
---> Updating database of binaries: 100.0%
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.

安装过程中遇到其它问题请戳

cannot link glew under xcode4, macosx lion

3 Xcode中GLSL的配置

Mac系统中已内置openGL、GLUT和GLSL,无需安装。

启动Xcode,新建Cocoa Application工程,删除“TriangleAppDelegate.*”文件、“*main.m”文件和“MainMenu.xib”文件。右键单击"Supporting Files"添加新文件,选择"C++ File"。添加后,删除对应的头文件。右键单击"Frameworks",添加"OpenGL.framework"和"GLUT.framework"(参考“MAC OS X And Win7 vs2010 搭建OpenGL”,参考“在Xcode中使用GLUT开发OpenGL应用程序”)。

下面是添加对GLEW库的链接,在build setting中添加如下参数即可:

other linker flags: -lGLEW
header search paths: /opt/local/include/
library search paths: /opt/local/lib/

4 Hello World

在supporting files下添加basic.vert:

1 void main(){
2 gl_Position = ftransform();
3 }

在supporting files下添加basic.frag:

1 void main() {
2 gl_FragColor = vec4(0.4,0.4,0.8,1.0);
3 }

在supporting files下添加textfile.h:

 1 #ifndef macGL_textfile_h
2 #define macGL_textfile_h
3
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7
8 char *textFileRead(const char *fn);
9 int textFileWrite(char *fn, char *s);
10 unsigned char *readDataFromFile(char *fn);
11 #endif

在supporting files下添加textfile.cpp:

 

在supporting files下添加GLSLTest.cpp。其中display函数中的glutWireTeapot()是glut内置的画茶壶的函数。注意MAC下特有的glBindVertexArrayAPPLE,glBindVertexArrayAPPLE,glGenVertexArraysAPPLE:

 

运行成功后的效果图:

说明:

1、在安装mac ports的时候,会很慢,感觉像卡死了,网上有人说断网会加速,但根据我的实际跟是否断网没关系,耐心等待,大概15分钟。

2、终端下:

sudo port -v selfupdate


3、

$ sudo port install glew

最后显示:

.packages.macports.org/sites/packages.macports.org/glew

--->  Attempting to fetch glew-1.11.0_0.darwin_14.x86_64.tbz2.rmd160 from http://mse.uk.packages.macports.org/sites/packages.macports.org/glew

--->  Installing glew @1.11.0_0

--->  Activating glew @1.11.0_0

--->  Cleaning glew

--->  Updating database of binaries

--->  Scanning binaries for linking errors

--->  No broken files found.

按照参考文章可行,谢谢!

http://www.glfw.org/faq.html

http://stackoverflow.com/questions/19865463/opengl-4-1-under-mavericks

mac下使用glew库,方法的更多相关文章

  1. mac 下卸载mysql的方法

    今天在mac上瞎折腾时,把mysql玩坏了,想卸载重装,却发现找不到卸载程序,百度了下,将操作步骤备份于此: cd ~/ sudo rm /usr/local/mysqlsudo rm -rf /us ...

  2. mac下pmset的使用方法

    在终端输入:pmset -g custom    这个命令可以显示系统所有的电源设置 lidwake: 当屏幕掀开的时候唤醒Mac,1是开启  0是关闭autopoweroff: 如果Mac处于睡眠状 ...

  3. Windows下安装lxml库方法

    如果直接用pip install lxml安装成功,那么恭喜!!! 一般在windows安装都十分蛋疼,pip无法直接安装(提示错误一大片,此处省略……) 因此选择wheel安装方式,步骤如下: 1. ...

  4. Mac下安装pear库+phpDocumentor

    1. 首先安装pear: curl -o go-pear.php https://pear.php.net/go-pear.phar 看见这个就安装OK: % Total % Received % X ...

  5. mac 下 git log 退出方法

    英文状态下按 Q (大小写无论)即可.

  6. mac下彻底卸载mysql方法

    sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo ...

  7. Mac下node.js卸载方法收集

    brew的安装方式 直接通过一条命令 brew uninstall nodejs 官网下载pkg安装包的 通过这条命令 sudo rm -rf /usr/local/{bin/{node,npm},l ...

  8. ubuntu 下编译glew (opengl扩展库)

    最近在研究咋样在QT 下使用opengl 扩展库glew.首先需要明白的是QT中对glut等库进行了封装,但是对glew和glfw等库需要自己编译后使用. 安装步骤: 1.下载Ubuntu下的glew ...

  9. Mac下python初学之Image库(PIL)

    Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...

随机推荐

  1. Codeforces Round #356 (Div. 2)-B

    B. Bear and Finding Criminals 链接:http://codeforces.com/contest/680/problem/B There are n cities in B ...

  2. css3 -- 文本

    1.坐标轴: 上左为负数 下右为正数 2.text-shadow E{text-shadow:x y color:} 还可以负数实现 E{text-shadow:x y blur-radius col ...

  3. API

    20145217 <Java程序设计>第八周学习总结 教材学习内容总结 本章主要讲输入与输出. 15.1日志API 1.java.util.logging包提供了日志功能相关类与接口,使用 ...

  4. 用super daemon xinetd进行安全配置

    xinetd 可以进行安全性或者是其他的管理机制的控制,这些控制手段都可以让我们的服务更为安全,资源管理更为合理.一些对客户端开放较多权限的服务(例如telnet)或者本身不带有管理机制的服务就可以通 ...

  5. Visual Studio蛋疼问题解决

    监视变量显示未定义标识符: VS2012在编译的时候采用了较快的编译模式,所以有些变量就显示未定义了.  解决方案:  项目->属性->c/c++->优化->改为禁用/OD  ...

  6. Storm中Spout使用注意事项小结

    Storm中Spout用于读取并向计算拓扑中发送数据源,最近在调试一个topology时遇到了系统qps低,处理速度达不到要求的问题,经过排查后发现是由于对Spout的使用模式不当导致的多线程同步等待 ...

  7. jenkins 的 ProcessTreeKiller----无法启动子进程的解决办法

    参考: http://alanland.iteye.com/blog/2047244 http://scmbob.org/start-process-in-jenkins.html java -Dhu ...

  8. JS类的封装及实现代码

    js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...

  9. 【CodeVS】p1079 回家

    题目描述 Description 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一 ...

  10. lsof在运维中的应用

    场景一:文件系统使用率很高,但是找不到具体哪个文件占用了空间 原因:在unix系统中,如果有两个进程同时使用一个文件,如果其中一个进程删除了这个文件,但是这个文件此刻不会正真被释放,一直要等待引用它的 ...