使用VScode 学习OpenGL

环境搭建

选取基础开发环境

1、C/C++编译器

在选择编译器的时候,给我推了两种,一种是GCC 一种是MSVC,
差异项总结:
C使用的多的就 选MingGW-w64:GCC 编译器 + MSYS2 包管理/POSIX 环境
C++使用的多的就选MSVC: Microsoft C/C++ 编译器 + Visual Studio 生态
我之前是习惯下载MingGW-w64,
但是AI 推荐我使用MSYS2,意思是更加自动化,体验一下到底差别在哪?
https://www.msys2.org/

(1)安装后,执行以下指令

# 更新包数据库和核心包
pacman -Syu
#  如果提示关闭终端,就关掉再重新打开 MSYS2 终端,然后执行:
pacman -Su

在这里插入图片描述
直接装了一大套全家桶,
在这里插入图片描述
在这里插入图片描述
以下是你在 Windows 上使用 VS Code + MSYS2 UCRT64 搭建 OpenGL C 语言开发环境的完整总结,包含操作步骤与遇到的问题记录。


Windows OpenGL C 开发环境搭建总结

📋 环境概览

项目详情
操作系统Windows
工具链MSYS2 UCRT64 (GCC + CMake + Ninja)
IDEVS Code + CMake Tools 扩展
图形库GLFW3 + OpenGL
语言C11
项目路径E:/learnRender/OpenGL/opengl-first-1

🛠️ 搭建步骤

1. 安装 MSYS2 UCRT64 工具链

在 MSYS2 UCRT64 终端中执行:

pacman -S mingw-w64-ucrt-x86_64-gcc \
          mingw-w64-ucrt-x86_64-cmake \
          mingw-w64-ucrt-x86_64-ninja \
          mingw-w64-ucrt-x86_64-glfw

2. VS Code 配置

  • 安装扩展:CMake ToolsC/C++
  • Ctrl+Shift+PCMake: Select a Kit → 选择 UCRT64 GCC

3. 编写 CMakeLists.txt

cmake_minimum_required(VERSION 3.20)
project(opengl_first C)

set(CMAKE_C_STANDARD 11)

# 确保 CMake 能找到 MSYS2 ucrt64 下的库
list(APPEND CMAKE_PREFIX_PATH "C:/msys64/ucrt64")

# GLFW
find_package(glfw3 REQUIRED)

# OpenGL
find_package(OpenGL REQUIRED)

add_executable(${PROJECT_NAME} main.c)
target_link_libraries(${PROJECT_NAME} PRIVATE glfw OpenGL::GL)

4. 编写 main.c

#include <GLFW/glfw3.h>
#include <stdio.h>

int main(void) {
    if (!glfwInit()) {
        fprintf(stderr, "Failed to init GLFW\n");
        return -1;
    }

    GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL First", NULL, NULL);
    if (!window) {
        fprintf(stderr, "Failed to create window\n");
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);
    printf("OpenGL Version: %s\n", glGetString(GL_VERSION));

    while (!glfwWindowShouldClose(window)) {
        glClearColor(0.1f, 0.1f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}

5. 构建与运行

操作快捷键 / 命令
ConfigureCtrl+Shift+P → CMake: Configure
BuildF7 或底部 Build 按钮
Run底部 ▶ 按钮 或 CMake: Run Without Debugging

⚠️ 遇到的问题及解决方案

问题 1:CMake 找不到 glfw3

错误信息:

Could not find a package configuration file provided by "glfw3"
with any of the following names:
  glfw3Config.cmake
  glfw3-config.cmake

原因: GLFW 未安装,或 CMake 搜索路径未包含 MSYS2 ucrt64 的库目录。

解决方案(两步):

  1. 在 MSYS2 UCRT64 终端安装 GLFW:
    pacman -S mingw-w64-ucrt-x86_64-glfw
    
  2. CMakeLists.txtfind_package 之前添加搜索路径:
    list(APPEND CMAKE_PREFIX_PATH "C:/msys64/ucrt64")
    

问题 2:CMake 找不到源文件 main.c

错误信息:

Cannot find source file: main.c
No SOURCES given to target: opengl_first

原因: CMakeLists.txt 中引用了 main.c,但项目目录下尚未创建该文件。

解决方案: 在项目根目录新建 main.c 并写入源代码后,重新执行 CMake: Configure


💡 经验备忘

要点说明
Kit 必须匹配使用 UCRT64 的 GCC 就必须用 UCRT64 的库,不要混用 MINGW64/CLANG64
清除缓存修改 CMakeLists.txt 后若报错,优先使用 Delete Cache and Reconfigure
CMAKE_PREFIX_PATHVS Code 调用 CMake 时环境变量可能与 MSYS2 终端不同,显式指定路径更可靠
deprecated 警告可忽略--no-warn-unused-cli 的弃用警告不影响构建,是 CMake Tools 插件传参导致的

🚀 下一步建议

  1. 集成 GLAD 加载现代 OpenGL 函数指针 (Windows 自带的 OpenGL 只有 1.1 版本,GLAD 帮你在运行时加载现代 OpenGL(3.3+)的所有函数指针 )
  2. 实现第一个三角形(VAO / VBO / Shader)
  3. 跟随 LearnOpenGL 教程系统学习
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐