如何自己创建一个opengl项目

OpenTK 2026-03-13 14:34:10

如何自己创建一个opengl项目
第一步:检查 VS2022 基础组件
打开 Visual Studio Installer -> 点击 VS2022 旁的 “修改” -> 确保勾选 “使用 C++ 的桌面开发”。
确认右侧已包含:MSVC v143 (最新版) 和 Windows 10/11 SDK。
点击“修改”等待完成,然后关闭 Installer。
第二步:安装 vcpkg (包管理器)
按 Win + R,输入 powershell,直接回车(不要管理员模式)。
依次输入以下命令(每行输完按回车):
powershell

编辑

# 进入你的主目录
cd ~

# 确认路径是 C:\Users\Candy.CHINAMI-6LP8UH3
pwd

# 克隆 vcpkg (如果提示文件夹已存在,请去资源管理器手动删除旧的 vcpkg 文件夹后再运行)
git clone https://github.com/microsoft/vcpkg.git

# 进入目录并引导安装
cd vcpkg
.\bootstrap-vcpkg.bat

# 集成到 VS2022
.\vcpkg integrate install
看到 Visual Studio projects should automatically find libraries 即为成功。
第三步:安装 OpenGL 依赖库 (含防卡顿方案)
我们要安装 glfw3, glad, glm。
清空代理设置 (防止端口错误)  代理安装没问题时,这一步可省略:
在当前的 PowerShell 中输入:
powershell

编辑

$env:HTTP_PROXY=""
$env:HTTPS_PROXY=""
执行安装命令:
powershell

编辑

.\vcpkg install glfw3 glad glm --triplet x64-windows
⚠️ 如果卡住不动 (关键步骤):
如果进度条卡在 Downloading ... 超过 1 分钟:
按 Ctrl + C 终止命令。
在 PowerShell 中输入 cd downloads 然后 ls,找到那个没下完的 .zip 文件。
手动下载:复制报错信息里的网址,用浏览器(开启全局代理)下载该文件。
替换文件:把浏览器下载好的完整 .zip 文件,复制到 C:\Users\Candy.CHINAMI-6LP8UH3\vcpkg\downloads 文件夹中,覆盖坏文件。
重试:回到 vcpkg 目录 (cd ..),再次运行上面的安装命令。vcpkg 会检测到文件已存在并跳过下载,直接编译。
第四步:创建 VS2022 项目
打开 Visual Studio 2022 -> 创建新项目。
搜索并选择 “控制台” (Empty Project) (语言选 C++)。  注意,不要创建空项目,没有后面展开 C/C++这个选项
项目名称:MyOpenGLApp。
重要:位置可以随便选,但解决方案平台必须在下拉菜单中选择 x64 (因为刚才装的是 64 位库)。
点击 “创建”。
第五步:配置项目属性
在右侧“解决方案资源管理器”中,右键点击 MyOpenGLApp (项目名称) -> 属性。
顶部配置选 “所有配置”,平台选 “x64”。
检查包含目录:
展开 C/C++ -> 常规 -> 附加包含目录。
通常 vcpkg 已自动注入,如果没有,请手动添加:$(VCPKG_ROOT)\installed\x64-windows\include,
注意,如果没有配置环境变量,填绝对路径,如C:\Users\Candy.CHINAMI-6LP8UH3\vcpkg\installed\x64-windows\lib
配置链接器:
展开 链接器 -> 输入 -> 附加依赖项。
点击下拉箭头 -> 编辑。
填入以下内容(每行一个):
text

编辑


这里注意,填写时要确保lib名字正确,查看C:\Users\Candy.CHINAMI-6LP8UH3\vcpkg\installed\x64-windows\lib中名字叫glfw3.lib还是glfw3dll.lib,填写对应的那个
glfw3.lib(glfw3dll.lib)
opengl32.lib
点击“确定”保存。
第六步:生成并添加 GLAD 源码
GLAD 需要手动生成一次,因为它依赖你的显卡驱动版本。
在线生成:
访问 glad.dav1d.de。  https://glad.dav1d.de/
API: gl, Version: 3.3, Profile: Core。
Language: C/C++。
勾选 Generate a loader for the selected APIs and extensions。
点击 GENERATE,下载生成的 .zip 包。
放入项目:
解压下载的包。
在你的项目文件夹(即 .sln 文件所在的文件夹)中,新建一个文件夹叫 glad。
将解压出的 src/glad.c 复制到 glad 文件夹中。
将 include/glad 和 include/KHR 两个文件夹复制到项目根目录(或者你喜欢的任何地方,只要路径对就行)。
添加到工程:
回到 VS2022,右键点击项目 -> 添加 -> 现有项。
浏览并选中刚才复制进去的 glad.c 文件,点击添加。
注意:.h 头文件不需要添加到项目视图,只要放在包含目录下即可。
设置头文件路径:再次打开项目属性 -> C/C++ -> 常规 -> 附加包含目录,添加你存放 glad 和 KHR 文件夹的路径(例如:$(ProjectDir)include 或直接写绝对路径,写绝对路径好些)。
第七步:编写代码并运行
右键项目 -> 添加 -> 新建项 -> 选择 C++ 文件 (.cpp),命名为 main.cpp。
粘贴以下代码:
cpp

编辑

#include <iostream>
// 注意顺序:glad 必须在 glfw 之前
#include <glad/glad.h> 
#include <GLFW/glfw3.h>

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() {
    // 1. 初始化 GLFW
    if (!glfwInit()) {
        std::cout << "Failed to initialize GLFW" << std::endl;
        return -1;
    }

    // 2. 配置 OpenGL 版本 (3.3 Core)
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

    // 3. 创建窗口
    GLFWwindow* window = glfwCreateWindow(800, 600, "My First OpenGL", NULL, NULL);
    if (window == NULL) {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    // 4. 初始化 GLAD (加载函数指针)
    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

    std::cout << "OpenGL Version: " << glGetString(GL_VERSION) << std::endl;

    // 5. 渲染循环
    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;
}
运行:
点击顶部绿色的 “本地 Windows 调试器” (▶️)。
成功标志:弹出一个深蓝色背景的窗口,控制台输出了 OpenGL 版本号。按下 ESC 键可关闭窗口。

...全文
49 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3

社区成员

发帖
与我相关
我的任务
社区描述
openTK、OpenGL、WebGL技术学习交流
图形渲染c#程序人生 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • 亿只小灿灿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧