本篇介绍
本篇介绍下在macos下搭建opengl环境。
环境配置
安装brew
brew是macos下安装应用包的命令
代码语言:javascript复制/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装GLEW
GLEW(The OpenGL Extension Wrangler Library),通过GLEW就可以使用opengl的扩展功能了。
代码语言:javascript复制brew install glew
安装GLFW
用来创建opengl上下文,操作窗口。
代码语言:javascript复制brew install glfw
下载glad
glad用来加载opengl库 打开glad在线网址,
按照下面标注操作下
其中api gl需要按照自己电脑的opengl 版本来选择,查看方式是可以下载一个glview,点开就可以看到:
Screen Shot 2021-07-18 at 12.39.20 PM.png
最后点击GENERATE下载glad压缩包。
新建工程
在xcode上新建一个命令行工程
添加头文件
添加头文件
头文件路径包括: /usr/local/Cellar/glew/版本号/include /usr/local/Cellar/glfw/版本号/include 下载的glad的头文件路径
添加依赖库
添加依赖库
在main中写测试代码如下:
代码语言:javascript复制//
// main.cpp
// openglDemo
//
// Created by shanks on 2021/7/17.
//
#include <iostream>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
}
int main(int argc, const char * argv[]) {
// insert code here...
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
while(!glfwWindowShouldClose(window))
{
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
同时把glad.c 也导入到工程中,运行,这时候可能会提示库没认证,错误如下:
代码语言:javascript复制not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
解决方法如下:
解决库签名问题
这时候编译,运行,就会看到结果如下:
运行结果
这时候就完成了环境的搭建。
工程demo 路径