Xcode环境下OpenGL C++ GLFW开发环境搭建
- 操作系统版本:MacOS Mavericks 10.9.2
- Xcode版本:5.0.1
- OpenGL版本:4.10
- GLFW版本:3.0.4
一、GLFW编译
1、下载并安装cmake(当前最新版本为2.8.12.2)
http://www.cmake.org/cmake/resources/software.html
下载cmake-2.8.12.2-Darwin64-universal.dmg文件安装即可
2、下载GLFW源代码(当前最新版本为3.0.4)
http://www.glfw.org/download.html
3、将GLFW解压到任意目录,例如~/Library/glfw-3.0.4
4、用文本编辑器打开glfw-3.0.4目录下glfw_config.h.in文件,可根据需要修改配置信息
(1)将#cmakedefine _GLFW_COCOA
修改为#cmakedefine _GLFW_COCOA 1
(2)将#cmakedefine _GLFW_NSGL
修改为#cmakedefine _GLFW_NSGL 1
(3)将#cmakedefine _GLFW_NO_DLOAD_WINMM
修改为#cmakedefine _GLFW_NO_DLOAD_WINMM 1
(4)将#cmakedefine _GLFW_USE_OPENGL
修改为#cmakedefine _GLFW_USE_OPENGL 1
5、打开terminal,进入到glfw-3.0.4目录,依次键入以下命令:
cmake .
sudo make install
执行成功后,会打印出以下内容:
-- Install configuration: ""
-- Installing: /usr/local/include/GLFW
-- Installing: /usr/local/include/GLFW/glfw3.h
-- Installing: /usr/local/include/GLFW/glfw3native.h
-- Installing: /usr/local/lib/cmake/glfw/glfwConfig.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwTargets.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwTargets-noconfig.cmake
-- Installing: /usr/local/lib/pkgconfig/glfw3.pc
-- Installing: /usr/local/lib/libglfw3.a
二、建立Xcode工程
1、打开Xcode,新建OSX Command Line Tool工程
2、左侧选中工程
(1)在Build Settings里找到Header Search Paths
添加terminal中输出的头文件路径:/usr/local/include/
(2)在Build Settings里找到Library Search Paths
添加terminal中输出的lib文件路径:/usr/local/lib/
3、在Build Phases中的Link Binary With Libraries中,添加:
(1)IOKit.framework
(2)Cocoa.framework
(3)OpenGL.framework
(4)CoreVideo.framework
(5)libglfw3.a
若不能找到libglfw3.a,可通过Add Other...按钮手动定位该文件,文件在/usr/local/lib/中
三、main文件编写
1、引用头文件
#define GLFW_INCLUDE_GLCOREARB
#include <GLFW/glfw3.h>
#define GLFW_INCLUDE_GLCOREARB可以使得GLFW包含gl3.h头文件,否则为gl.h
2、main函数
int main() {
if (!glfwInit()) {
return -;
}
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, );
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, );
GLFWwindow* window = glfwCreateWindow(, , "Hello OpenGL", NULL, NULL);
if (!window) {
glfwTerminate();
return -;
}
glfwMakeContextCurrent(window);
cout << "OpenGL Vendor:" << glGetString(GL_VENDOR) << endl;
cout << "OpenGL Renderer: " << glGetString(GL_RENDERER) << endl;
cout << "OpenGL Version: " << glGetString(GL_VERSION) << endl;
cout << "GLSL Version:" << glGetString(GL_SHADING_LANGUAGE_VERSION) << endl;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
while (!glfwWindowShouldClose(window)) {
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return ;
}
一系列glfwWindowHint的调用可以使得GLFW使用系统中高版本的OpenGL,打印出的版本为4.1,如不使用则为2.1
另附控制台输出结果:
OpenGL Vendor:Intel Inc.
OpenGL Renderer: Intel Iris OpenGL Engine
OpenGL Version: 4.1 INTEL-8.24.
GLSL Version:4.10
四、其他
1、工作目录(Working Directory)
工作目录决定了文件查找的路径,新建的Command Line Tool工程,默认的工作目录为
/Users/<用户名>/Library/Developer/Xcode/DerivedData/<工程名>-guttkjhmhgdrqhabdijvcjusfjbi/Build/Products/Debug
当在工程中读取文件时,例如:ifstream file("aaa.fs"),会从该目录查找文件,引入工程的目录不会自动拷贝到该目录下,可以通过修改工作目录的方式解决该问题。
Xcode中菜单Product->Scheme->Edit Scheme
左侧选中Run <工程名>
右侧Working Directory后面勾选Use custom working directory,
然后下方输入的工程目录,这样代码里就是从这个目录开始找了。
Xcode环境下OpenGL C++ GLFW开发环境搭建的更多相关文章
- 搭建windows环境下(nginx+mysql+php)开发环境
搭建windows环境下(nginx+mysql+php)开发环境 1. 所需准备应用程序包 1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...
- Windows 环境下vue+webpack前端开发环境搭建
一.开发环境搭建 1.前端框架一般依赖node.js,我们首先要安装node.js. 2.由于许多npm 的源都在国外的地址,安装起来特别慢,所以我们这里利用淘宝的镜像服务器. 安装命令为:npm i ...
- Python Windows环境下安装Python集成开发环境 学习之路(一)
一.安装下载安装 Python https://www.python.org/ 全部下一步,直接Finish PyCharm http://www.jetbrains.com/pycharm/ 全部 ...
- pycharm环境下用Python+Django开发web搭建
1.安装pycharm: 2.安装Python: 3.安装mysql: 4.安装Django; pip3 install django 5.创建Django工程命令方式: # 创建Django程序 d ...
- Windows下的Objective-C集成开发环境(IDE)
Windows下的Objective-C集成开发环境(IDE) 分类: Objective-C2012-04-20 21:54 26631人阅读 评论(42) 收藏 举报 windowside编译器c ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- mac10.9下eclipse的storm开发环境搭建
--------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...
- Ubuntu下配置C/C++开发环境
在 Ubuntu 下配置 C/C++ 开发环境 转自:白巴的临时空间 Submitted by 白巴 on 2009-04-27 19:52:12. 学习笔记 虽然 Ubuntu 的版本已经是9.04 ...
随机推荐
- 第 13 章 剖析el表达式
13.1. 再谈el(Expression Language) 我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和 ...
- Android课程---String、StringBuffer 、StringBuilder 的区别(转)
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...
- IOS第二天多线程-01-延时执行
**********延时执行 #import "HMViewController.h" @interface HMViewController () @end @implement ...
- JavaScript 字符 "转换
后台把一个Json类型的数据当成字符串返回到前台,但是到前台变成了下面的这个样子 "[{"name":"IE","y":72},{ ...
- 升级到Xcode6.2后 免证书真机调试出错的问题
我的本来是Xcode6.1 可以正常免证书真机调试,升级到Xcode6.2以后,真机调试就报错,然后就又按照这篇文章http://www.cnblogs.com/liuliuliu/p/4030524 ...
- Maintaining Your Signing Identities and Certificates 维护你的签名标识和证书
Code signing your app lets users trust that your app has been created by a source known to Apple and ...
- Visual Studio 2012 常用快捷键
1. 强迫智能感知:Ctrl+J:2.强迫智能感知显示参数信息:Ctrl-Shift-空格:3.格式化整个块:Ctrl+K+F4. 检查括号匹配(在左右括号间切换): Ctrl +]5. 选中从光标起 ...
- Inside Flask - globals 全局变量(对象代理)
Inside Flask - globals 全局变量(对象代理) 框架是一个容器,在框架内编程,一般是要遵守框架的约定和使用模式.通常这样的模式是 IoC,即由框架调用用户的代码,而不是用户调用框架 ...
- codis配置
codis集群配置 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表) ...
- 设计模式之 -- 状态模式(State)
状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类.当控制一个对象的状态转换条件分支语句(if...else或switch...case)过于复杂时,可以此模式将状态的判断逻辑 ...