使用xCode搭建OpenGL开发环境
- 下载安装库文件
- 创建xCode工程,与第三方库文件链接
- 开发OpenGL简单功能
1、安装GLFW,和GLEW库
- 通过Homebrew工具安装
安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 再安装glfw和glew库
brew install glfw
brew install glew
- 两个库的安装路径在:usr/local/glew 和 usr/local/glfw
- 安装目录下包含了include头文件和lib库文件,这两个文件夹中的内容后面需要与xCode工程进行链接
2、创建xCode工程并关联第三方库
- 创建一个Common Line Tool工程,语言选择使用C++
- 添加头文件
- 添加路径:xCode工程-Build Settings-Search Paths -Header Search Paths
- 在该路径下添加头文件路径,添加后程序编译时就会去该目录下查找头文件
-
链接第三方二进制库文件
- 配置目录在:Build Phases-Link Binary With Libraries
-
点击加号(+)按钮,在弹窗中,搜索OpenGL,可以找到OpenGL.framework库并并进行添加
-
点击弹窗左下角的的“Add Other...“按钮,去到glew的安装目录找到dylib文件(/usr/local/Cellar/glew/2.2.0_1/lib),进行添加
- glfw库文件和上面添加步骤一样
3、验证
- 导入glfw头文件
#include <GL/glew.h>
#include <GLFW/glfw3.h>
- 调用OpenGL api实现一个简单程序(展示红色背景的窗口)
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
void init(GLFWwindow* window) { }
void display(GLFWwindow* window, double currentTime)
glClearColor(1.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
}
int main(void ) {
if (!glfwInit()) {
exit(EXIT_FAILURE);
}
GLFWwindow* window = glfwCreateWindow(600, 600, "OpenGL Demo", NULL, NULL);
glfwMakeContextCurrent(window);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
if (glewInit() != GLEW_OK) {
exit(EXIT_FAILURE);
}
glfwSwapInterval(1);
init(window);
while (!glfwWindowShouldClose(window)) {
display(window, glfwGetTime());
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
exit(EXIT_SUCCESS);
}
- 效果图
- 生成一个标题是(OpenGL Demo)的红色背景窗口
问题:
- 调用glewInit()方法报错
- 错误信息:glewInit() Thread 1: EXC_BAD_ACCESS (code=1, address=0x3b0)
- 解决方式:将以下代码移至glfwMakeContextCurrent()(和您的GL加载程序init)之后
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);