十分钟最简便配置mac+OpenGL+vscode

总共四个步骤【实测有效】

1、brew install glfw

确保你的mac有brew,没有的话,看着brew官网
教程。brew就类似应用商场,在线安装app,然后配置软连接,方便增删改查
在安装完brew之后,利用brew在线安装glfw,命令如下,在终端键入并回车即可
brew install glfw

2、下载glad

这个步骤只是上网下载代码拷贝进项目,具体步骤如下
参考了某个链接VSCode+CMake搭建OpenGL开发环境
准备 glad
进入下载界面下载 glad,它提供了一个生成器,选择如下:

Language选择C/C++;
Specification 选择 OpenGL;
gl 我这里选择的是 Version 3.3;
Profile 选择 Core.

你的话不一定要遵循我的选择,gl的Version可以在 App Store 下载 OpenGL Extensions Viewer 查看。不同的显示芯片对 opengl 支持版本不同(当然用低版本肯定没问题)。我用的是4.1

然后点击下面的 Generate 进行下载,只需要下载压缩包即可,下载完成后进行解压即可,不需要进行编译,直接在项目中引用源文件即可。
具体拷贝的步骤如下:
将 include 文件夹下的 glad、KHR 拷贝到项目中的 include 文件夹(没有的话进行创建),然后将 src/glad.c 单独拷贝到项目根目录中。

3、cmake 生成makelist.txt

确保vscode安装了Cmake 和Cmake Tools两个插件
输入vscode命令行 CMake:Quick Start 命令帮助快速创建。内容如下,会写cmake的自己写,不会的直接复制即可

cmake_minimum_required(VERSION 3.0.0)
project(HelloGL VERSION 0.1.0)

# 使用 C++ 11 标准
set(CMAKE_CXX_STANDARD 11)

# 添加头文件
set(GLAD_H ${PROJECT_SOURCE_DIR}/include)
set(GLFW_H /usr/local/include)
include_directories(${GLAD_H} ${GLFW_H})

# 添加目标链接
set(GLFW_LINK /usr/local/lib/libglfw.3.dylib)
link_libraries(${GLFW_LINK})

# 执行编译命令
set(SOURCES glad.c main.cpp)
add_executable(HelloGL ${SOURCES})

# 链接系统的 OpenGL 框架
if (APPLE)
    target_link_libraries(HelloGL "-framework OpenGL")
endif()

include(CTest)
enable_testing()

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
4、然后啥都不用配置 可以直接用cmake

新建一个名为main.cpp的文件
拷贝以下代码

#include 
#include 
#include 
#include 
#include 

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

int main(int argc, const char *argv[])
{
     
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#ifdef __APPLE__
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // uncomment this statement to fix compilation on OS X
#endif

    GLFWwindow *window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
     
        std::cout << "fail to create 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))
    {
     

        processInput(window);
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

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

void processInput(GLFWwindow *window)
{
     
    if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
    {
     
        glfwSetWindowShouldClose(window, true);
    }
}
总结,如何使用cmake调试和运行

编译的话输入命令CMake:Build
想要断点调试,输入命令 Cmake:Debug
想要直接运行,输入命令 CMake:Run without Debugging

别在配置环境上花太多时间,=。=不然得不偿失

你可能感兴趣的:(OpenGL,OpenGL)