OpenGL 环境搭建:CMake、GLFW、GLAD

OpenGL 环境搭建

概述

GLFW (Graphics Library Framework):配合OpenGL使用的轻量级工具程序库。
GLAD:加载OpenGL函数指针(解决不同显卡驱动兼容性问题)
CMake:一个跨平台的构建系统生成器(Meta-Build System),用于管理C/C++项目的编译过程。

软件环境

  • Visual Studio 2022
  • Windows 11

配置步骤

使用CMake构建GLFW

CMake可以自动处理GLFW的依赖关系和平台特定配置

下载GLFW源代码

  1. GLFW官网下载 Source package
https://www.glfw.org/download.html
图片失效即显示
  1. 解压缩glfw-3.4.zip文件(2025/06/12,最新版本号:3.4)
图片失效即显示
  1. 在解压缩后的目录下(glfw-3.4)新建build文件夹
图片失效即显示

下载CMake

  1. CMake官网下载 installer
https://cmake.org/
图片失效即显示
  1. 双击 cmake-4.0.2-windows-x86_64.msi 微软安装程序
图片失效即显示
  1. 安装
图片失效即显示

构建GLFW

  1. 打开 CMake 程序
Where is the source code(源代码目录):glfw-3.4.zip文件 解压的路径
Where to build the binaries(存放编译结果的目标文件目录):glfw-3.14/build
图片失效即显示
  1. 点击Configure按钮,选择工程的生成器的版本号 (Visual Studio 2022)
图片失效即显示
  1. Configuring done
图片失效即显示
  1. 点击Generate按钮
图片失效即显示
  1. Generate done
图片失效即显示
  1. 点击Open Project按钮
图片失效即显示
  1. 构建项目
图片失效即显示
  1. 打开项目所在目录
图片失效即显示
  1. 进入src目录
图片失效即显示
  1. 进入Debug目录
图片失效即显示
  1. 复制编译目标文件
图片失效即显示
  1. 粘贴到自定义的存放类库文件的目录
可以存放到任意目录,后续获取类库文件时,只要设置该目录即可。此处我存放到 C:\OpenGL\libs 目录下。
图片失效即显示
  1. 复制 glfw-3.4/include 目录下的 GLFW 目录
图片失效即显示
  1. 将 GLFW 目录拷贝到自定义的存放头文件的目录
可以存放到任意目录,后续获取头文件时,只要设置该目录即可。此处我存放到 C:\OpenGL\include 目录下。
图片失效即显示

配置 GLAD

  1. 打开GLAD在线服务
https://glad.dav1d.de/
  1. 生成GLAD文件
图片失效即显示
  1. 下载 glad.zip 文件
图片失效即显示
  1. 解压缩 glad.zip 文件,打开 glad/include 目录
图片失效即显示
  1. 将glad/include 目录下的所有文件拷贝到自定义的目录下
可以存放到任意目录,后续获取头文件时,只要设置该目录即可。此处我存放到 C:\OpenGL\include 目录下。
图片失效即显示

链接库、导入头文件

新建

  1. 打开 Visual Studio 2022,点击 Create New Project
图片失效即显示
  1. 创建 C++ Empty Project
图片失效即显示
  1. 打开工程属性
图片失效即显示
  1. 选择VC++ Directories选项卡
图片失效即显示
  1. 点击 Include Directories 右侧的目录选择框
图片失效即显示
  1. 在弹出框中,新建 New Line
图片失效即显示
  1. 输入 C:\OpenGL\include (配置 GLAD章节 第五步 的头文件目录),同样地在 Libray Directories 项目输入 C:\OpenGL\libs (构建GLFW 第十一步 的类库文件目录)
图片失效即显示
  1. 选择 Linker 选项卡,点击 Input 选项
图片失效即显示
  1. 点击 Additional Dependencies 右侧的下拉框
图片失效即显示
  1. 在弹出框中输入 glfw3.lib opengl32.lib
图片失效即显示
  1. 点击确定
图片失效即显示

你好,窗口

  1. 将 glad.zip 解压后的 glad (配置GLAD章节 第四步) 目录下的 /src/glad.c文件拷贝到 C++ 项目中
图片失效即显示
  1. 拷贝到 C++ 项目的 Source Files 目录下
图片失效即显示
  1. 新建 main.cpp 文件
图片失效即显示
  1. 在 main.cpp 文件中输入如下代码:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>

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);
}

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(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))
    {
        processInput(window);

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}
  1. 运行
图片失效即显示
  1. 弹出 LearnOpenGL 黑色窗口,点击黑框,按 ESC 键,窗口关闭
图片失效即显示

总结

综上,将头文件和类库文件放在不同目录中,让C++项目可以访问这些文件路径即可。

文章声明

内容准确性: 我会尽力确保所分享信息的准确性和可靠性,但由于个人知识有限,难免会有疏漏或错误。如果您在阅读过程中发现任何问题,请不吝赐教,我将及时更正。

posted on 2025-06-12 20:37  wubing7755  阅读(700)  评论(0)    收藏  举报