clion opengl glfw_在macOS上,使用vscode 开发openGL环境布署

在网上的资源中,基本都是基于xcode来布macOS下的openGL环境,写一个使用cmake的教程,供大家参考。

1,先安装macOS下的homebrew

https://brew.sh

安装脚本

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

2,安装vscode cmake c++插件等 调式工具

brew cask install visual-studio-code
brew install cmake

3,安装需要的依赖

https://learnopengl-cn.github.io​learnopengl-cn.github.io

根据这个openGL学习网站上的内容,安装需要的glfw glad

glfw安装

brew install glfw

在目前的版本macOS 10.15.4中,会下载到路径/usr/local/Cellar/glfw

glad使用在线服务,下载下来glad.zip

https://glad.dav1d.de​glad.dav1d.de

8885f3ba037777e29a7317497a2d288a.png

下载解压后,你可以安装到和glfw同一个层级的目录下/usr/local/Cellar/glad

在已经使用cmake QuickStart创建完后的工程目录中,找到CMakeLists.txt,添加引入glfw 的头文件,lib动态库,还有glad的头文件

假设glfw当前版本是3.3.2

include_directories(/usr/local/Cellar/glfw/3.3.2/include) #添加头文件目径
link_directories(/usr/local/Cellar/glfw/3.3.2/lib) #添加链接库路径
include_directories(/usr/local/Cellar/glad/include) #添加头文件

接下来,把glad解压开后的src/glad.c 复制到工程目录中

CMakeLists.txt 修改 addexecutable(${PROJECT_NAME} main.cpp src/glad.c)

把项目文件和动态库链接起来

target_link_libraries(${PROJECT_NAME} libglfw.dylib)

把入门课程的 创建窗口代码,复制到main.cpp中

你好,窗口 - LearnOpenGL CN​learnopengl-cn.github.io
6666175ded1f60d8435fdf3f8c243abb.png
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>


void framebuffer_size_callback(GLFWwindow* window, int width, int height);

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    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;
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}

运行起来,大功告成

anyway, 我还是喜欢使用clion

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值