You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统VSCode MinGW环境下如何编译ImGui并集成到OpenGL项目?

适配ImGui的修改方案

一、修改现有Makefile

1. 调整后的完整Makefile内容

CXX = g++
Flags = -std=c++17 -Wall -Wformat -DIMGUI_IMPL_OPENGL_LOADER_GLEW
Libs = -lGL -lGLEW -lglfw -ldl

OBJDIR = obj
# 新增ImGui核心源码与绑定源码
ImGuiFiles = src/vendor/imgui/imgui.cpp src/vendor/imgui/imgui_draw.cpp src/vendor/imgui/imgui_tables.cpp src/vendor/imgui/imgui_widgets.cpp src/vendor/imgui/imgui_impl_glfw.cpp src/vendor/imgui/imgui_impl_opengl3.cpp
Filez = src/Rendering/*.cpp src/Core/*.cpp $(ImGuiFiles)
Includes = -Isrc/PCH/ -Isrc/ -Iinclude/ -Isrc/Rendering/Buffers/ -Isrc/Core/ -Isrc/Rendering/ -Isrc/vendor/imgui -Isrc/FileManagement/ -Ires/ -Isrc/vendor/glm/ -Isrc/vendor/stb_image -Isrc/vendor/

all: main.cpp
	$(CXX) $(Flags) $(Includes) $(Filez) main.cpp lib/Buffers.a -o main $(Libs)

clean:
	rm $(OBJDIR)/*.o *.o main.exe

2. 修改说明

  • 新增了-DIMGUI_IMPL_OPENGL_LOADER_GLEW编译宏,匹配你项目用的GLEW OpenGL加载器,避免ImGui的加载器冲突
  • 直接把ImGui的核心代码和GLFW、OpenGL3绑定代码加入编译列表,不需要额外提前编译imgui.a静态库,省去单独编译静态库的步骤
  • 移除了原编译指令里的lib/imgui.a,避免重复链接报错
  • 新增了clean指令对生成的main.exe的清理

二、VS Code task配置方案

在项目.vscode目录下新建tasks.json文件,填入以下内容即可一键编译运行:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build项目",
            "type": "shell",
            "command": "make",
            "args": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                "$gcc"
            ]
        },
        {
            "label": "运行项目",
            "type": "shell",
            "command": "./main.exe",
            "dependsOn": "build项目",
            "group": {
                "kind": "test",
                "isDefault": true
            }
        }
    ]
}

配置完成后按Ctrl+Shift+B即可触发默认编译任务,按Ctrl+Shift+P选择运行任务即可找到运行项目的选项。

前置检查项

  • 提前将ImGui官方压缩包中backends目录下的imgui_impl_glfw.h、imgui_impl_glfw.cpp、imgui_impl_opengl3.h、imgui_impl_opengl3.cpp四个文件拷贝到src/vendor/imgui目录下
  • 编译前先运行一次make clean清理旧的编译缓存文件

内容的提问来源于stack exchange,提问作者Electric fox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:36:04