mac下使用glew库,方法
主要参考http://www.cnblogs.com/openxxs/p/4055916.html
整理自之前使用的163博客原创文章。
环境:系统 OS X 10.9.2 (13C64),工具 Xcode 5.1,图形卡 Intel Iris 1024 MB
1 MacPorts安装
$ 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下更加游刃有余)
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://stackoverflow.com/questions/19865463/opengl-4-1-under-mavericks
mac下使用glew库,方法的更多相关文章
- mac 下卸载mysql的方法
今天在mac上瞎折腾时,把mysql玩坏了,想卸载重装,却发现找不到卸载程序,百度了下,将操作步骤备份于此: cd ~/ sudo rm /usr/local/mysqlsudo rm -rf /us ...
- mac下pmset的使用方法
在终端输入:pmset -g custom 这个命令可以显示系统所有的电源设置 lidwake: 当屏幕掀开的时候唤醒Mac,1是开启 0是关闭autopoweroff: 如果Mac处于睡眠状 ...
- Windows下安装lxml库方法
如果直接用pip install lxml安装成功,那么恭喜!!! 一般在windows安装都十分蛋疼,pip无法直接安装(提示错误一大片,此处省略……) 因此选择wheel安装方式,步骤如下: 1. ...
- Mac下安装pear库+phpDocumentor
1. 首先安装pear: curl -o go-pear.php https://pear.php.net/go-pear.phar 看见这个就安装OK: % Total % Received % X ...
- mac 下 git log 退出方法
英文状态下按 Q (大小写无论)即可.
- mac下彻底卸载mysql方法
sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo ...
- Mac下node.js卸载方法收集
brew的安装方式 直接通过一条命令 brew uninstall nodejs 官网下载pkg安装包的 通过这条命令 sudo rm -rf /usr/local/{bin/{node,npm},l ...
- ubuntu 下编译glew (opengl扩展库)
最近在研究咋样在QT 下使用opengl 扩展库glew.首先需要明白的是QT中对glut等库进行了封装,但是对glew和glfw等库需要自己编译后使用. 安装步骤: 1.下载Ubuntu下的glew ...
- Mac下python初学之Image库(PIL)
Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...
随机推荐
- 【hibernate criteria】hibernate中criteria的完整用法 转
---恢复内容开始--- 转自:http://www.360doc.com/content/090313/10/26262_2794855.html 1.Criteria Hibernate 设计了 ...
- Java ClassLoader基础及加载不同依赖 Jar 中的公共类
转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...
- css3 总结03
box-flex: 设置或检索弹性盒模型对象的子元素如何分配其剩余空间. <ul id="box"> <li>a</li> <li> ...
- js-错误处理与调试,JSON
错误处理与调试: 1.try-catch try{ window.someNoneXistentFunction(); }catch(error){ alert(error.message) } 2. ...
- 【CLR Via C#】第5章 基元类型、引用类型、值类型
第二遍看这本书,决定记录一下加深印象. 1,基元类型 什么事基元类型?基元类型是直接映射到FrameWork类库(FCL)中存在的类型,编译器直接支持的数据类型.比如int直接映射到System.In ...
- 差分约束系统 POJ 3169 Layout
题目传送门 题意:有两种关系,n牛按照序号排列,A1到B1的距离不超过C1, A2到B2的距离不小于C2,问1到n的距离最大是多少.如果无限的话是-2, 如果无解是-1 分析:第一种可以写这样的方程: ...
- Bower In ASP.NET Core
创建一个ASP.NET Core MVC项目的时候,会产生一个bower.json的文件,用于管理前段的js. NPM & Bower NPM主要运用于Node.js项目的内部依赖包管理,安装 ...
- django 数据库交互2
打开django shell python manage.py shell 输入命令 >>> from myapp import * >>> MySite.obje ...
- IO中同步、异步与阻塞、非阻塞的区别
一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如si ...
- ACM 田忌赛马
田忌赛马 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Here is a famous story in Chinese history. "That ...