macos opengl 环境搭建

2022-10-25 16:27:31 浏览数 (1)

本篇介绍

本篇介绍下在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 路径

0 人点赞