首页 > 其他分享 >VSCode中配置CMake+GLFW渲染基础-轻量级架构

VSCode中配置CMake+GLFW渲染基础-轻量级架构

时间:2024-06-05 17:59:46浏览次数:26  
标签:glad CMake VSCode GLFW build glfw include cmake 轻量级

一、核心基础库下载

1、GLFW库下载

    下载链接如下:
进入Download | GLFWGLFW source code and binary distribution download links.icon-default.png?t=N7T8https://www.glfw.org/download.html 选择

2、GLAD库下载

   下载链接如下:

https://glad.dav1d.de/Web generator for the Glad toolicon-default.png?t=N7T8https://glad.dav1d.de/ 选择

二、基础库相关配置

1、GLFW库配置

        原始资源文件下载完毕后,需要生成glfw3.lib库,我们采用的工具是CMakeTools来完成,源代码目录我们选择GLFW的源代码的根目录,然后我们新建一个build 文件夹作为输出目录,Configure选择对应Visual Studio版本,2019/2022均可。

        这里作者用到的是visual studio 2022 ,把目录放到D盘,如D:/glfw-3.4/。生成完毕后,在build目录下找到生成好的GLFW头文件目录,如下图

        将include文件夹整体拷贝到glfw-3.4目录下,

        确认glfw3.lib正确生成并存在于Debug目录

2、glad库配置

将下载好的glad库目录,放到磁盘目录下。有两个子文件夹,include&src

三、VSCode与CMakeList配置

1、配置文件目录索引

在.vscode文件目录中打开c_cpp_properties.json,添加库文件路径,使其能被正确的#include<>引用。作者编译器用VS2022,如果是2019可自行修正C:\\Program Files\\Microsoft Visual Studio\\2022。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/glfw-3.4/include",
                "D:/glad/include/"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\Hostx64\\x64\\cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

2、配置CMakeList

首先要将GLAD库src文件夹中的glad.c拷贝至执行文件同级目录下

/**
* |--MainWindow
*    |--glad.c
*    |--mainWindows.cpp
*    |--CMakeLists.txt
*
/

打开CMakeLists.txt,进行配置

cmake_minimum_required(VERSION 3.10)
project(MainWindowProject)
#设置目录名
set(target_name "MainWindow")
#设置GLFW路径
set(glfw3_DIR "D:/glfw-3.4/build/src/")
find_package(glfw3 REQUIRED CONFIG PATHS ${glfw3_DIR} NO_DEFAULT_PATH)

#设置执行路径
add_executable(MainWindow mainWindows.cpp glad.c)

#链接引用头文件
target_include_directories(MainWindow PRIVATE D:/glfw-3.4/include/ D:/glad/include/)
#链接glfw3.lib库目录
target_link_directories(MainWindow PRIVATE D:/glfw-3.4/build/src/Debug/)
#链接glfw
target_link_libraries(MainWindow glfw3)

3、配置执行文件

在.vscode中新建两个文件,launch.json与settings.json这两个文件主要应用于编译与运行的配置

3.1tasks.json配置

{
    "version": "2.0.0",
    "windows": 
    {
        "options": 
        {
        }
    },
    "tasks": [
        {
            "label": "CMake Configure",
            "type": "shell",
            "command":"cmake -S . -B build",
            "group": "build"

        },
        {
          "label": "CMake Build",
          "type": "shell",
          "command":"cmake --build build",
          "group": {
            "kind": "build",
            "isDefault": true
          },
          "dependsOn":["CMake Configure"]
        }
    ]
}

3.2launch.json配置

{
    "version": "2.0.0",
    "configurations": [
        {
            "name":"Debug Chapter1",

            "type": "cppvsdbg",

            "request": "launch",

            "program": "${workspaceRoot}/build/MainWindow/Debug/MainWindow",

            "args": [],

            "preLaunchTask": "CMake Build",

            "environment": [],

            "cwd": "${workspaceRoot}",

            "console":"externalTerminal"
        },
    ]
}

4、配置glfw3Config.cmake正确路径

在D:\glfw-3.4\build\src目录中找到,glfw3Config.cmake进行glfw3Targets.cmake路径修正,

如下所示

include(CMakeFindDependencyMacro)
find_dependency(Threads)
include("${CMAKE_CURRENT_LIST_DIR}/../CMakeFiles/Export/lib/cmake/glfw3/glfw3Targets.cmake")

四、渲染基础窗口代码运行验证

1、进入mainWindow.cpp,进行头文件的引用验证

2、这里引用一个比较经典的GLFW窗口代码作为验证

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>

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

const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }    

    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 processInput(GLFWwindow *window)
{
    if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        glfwSetWindowShouldClose(window, true);
}


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

3、运行顺序,点击,选择CMake Build

4、CMakeBuild完成后,在左侧工具栏找到执行程序键

5、成功运行会生成一个淡青色背景的窗口,OpenGL配置顺利搭建成功

标签:glad,CMake,VSCode,GLFW,build,glfw,include,cmake,轻量级
From: https://blog.csdn.net/NMixSpace/article/details/139435277

相关文章

  • 巧用CMake编译策略:C++二次开发中的Release与Debug模式切换秘籍
    往期本博主的C++精讲优质博文可通过这篇导航进行查找:《Lemo的C++精华博文导航:进阶、精讲、设计模式文章全收录》前言在C++二次开发的过程中,理解各种编译模式并能灵活切换,对于提升软件性能和调试效率至关重要。本文将深入讨论Debug与Release模式的区别、默认编......
  • vscode如何添加本地python解释器、解析器 Interpreter?(Python: Select Interpreter),并在
    先安装python扩展然后点ctrl+shift+p搜索python:select,选择解析器(或者也可以直接点左下方的) 然后360报毒了,允许通过,然后选择你想要的解释器  然后就好了20230816文章目录在VSCode中添加本地Python解释器 Python解释器简介为什么要在VSCode中设置Python解释器如......
  • CMakeFile.txt通过sysroot方式后生成makefile报错
    怪不得博客园干不过别家,体验真的不太好。通过openwrite发布文章,其他平台都能发布,就博客园限制了,理由是文字少的文章限制发布到该平台。哎,这种行为当真是扶不起的阿斗。以后也不要太把博客园当回事了,迟早要关门的报错信息如下:--TheCcompileridentificationisunknown--T......
  • CMake -- CMake Release 编译
    1.Release和Debug的区别Debug:调试版本,包含了调试需要用到的信息,程序员可以通过这个版本对程序进行调试。通常有一个.pdb格式的文件,包含了断点等调试信息。Release:发布版本,不对程序进行调试,自然就比Debug版本容量更小。同时在编译时会对程序进行优化,速度也比Debug更快。......
  • vscode 报错:应输入表达式
    如图,报错:应输入表达式,但是我的==看起来是正确的。后面发现原来是我的定义有问题,这里定义处多了分号“;”,然后vscode检测不到该定义,故会报错。......
  • vscode setting.js 中 $dir 突然多了一对双引号的问题
    找到文件codeManager.js可以通过everything快速查找,或者找到以下路径:C:\Users\你的用户名\.vscode\extensions\formulahendry.code-runner-0.12.2\out\src先找到$dir替换函数从上图可以看出函数quoteFileName做了主要工作把引号去掉就好了......
  • 如何在VScode上写一篇MarkDown文档
    如何在VScode上写一篇MarkDown文档1.首先需要安装插件2.新增一个MarkDown文件3.编写如下文案4.生成MarkDown格式文档和大纲一级标题Markdown二级标题三级标题后续加#类推字体加粗倾斜加粗倾斜删除高亮这是上标这是下标引用引用第一段分割线居中中......
  • cmake配置VS工程配置使用dll
    cmake配置VS工程配置使用dllAuthor:ChrisZZTime:2024-06-0116:17:04目录cmake配置VS工程配置使用dll1.目的2.如果找不到dll,会发生什么?3.需要找到哪些dll?3.1“就那么几个文件,手动拷贝“3.2从依赖树递归查询3.3额外的dll文件4.找到dll后放到哪里?4.1VS工程属性......
  • 写一个 vscode 插件
    HxTranslate这是一个vscode扩展插件示例,参考:YourFirstExtension,可将helloworld更改为自己的扩展插件名称如:HxTranslate,其余默认即可.建议使用文心一言解答疑问.注意事项deepin终端运行:sudoaptinstallnodejs终端运行:npmi-gyogenerator-codety......
  • Qt 设置软件的版本信息:QMake、CMake工程
    Qt设置软件的版本等信息对于Qt开发的软件,我们如何去方便的查看其软件的版本信息。这里提供了几种方式。在运行程序期间设置版本信息大部分的程序在运行之后都会提供一个关于的按钮,通过点击该按钮并弹出一个关于界面,则可以查看相关的程序信息。此关于界面为用户自定义的......