解决方案:
在imconfig.h 头文件中添加 #define IMGUI_IMPL_OPENGL_LOADER_GL3W
可以解决问题,亲测可行。
参考链接:
关键提示:
// Desktop OpenGL: attempt to detect default GL loader based on available header files.
// If auto-detection fails or doesn’t select the same GL loader file as used by your application,
// you are likely to get a crash in ImGui_ImplOpenGL3_Init().
// You can explicitly select a loader by using ‘#define IMGUI_IMPL_OPENGL_LOADER_XXX’ in imconfig.h or compiler command-line.
#if !defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
&& !defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
&& !defined(IMGUI_IMPL_OPENGL_LOADER_GLAD) \
- && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING) \
- && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2) \
- && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING3)
&& !defined(IMGUI_IMPL_OPENGL_LOADER_CUSTOM)
#if defined(__has_include)
#if __has_include(<GL/glew.h>)
#define IMGUI_IMPL_OPENGL_LOADER_GLEW
#elif __has_include(<glad/glad.h>)
#define IMGUI_IMPL_OPENGL_LOADER_GLAD
#elif __has_include(<GL/gl3w.h>)
#define IMGUI_IMPL_OPENGL_LOADER_GL3W
-
#elif __has_include(<glbinding/gl/gl.h>)
-
#define IMGUI_IMPL_OPENGL_LOADER_GLBINDING
-
#elif __has_include(<glbinding/glbinding.h>)
-
#define IMGUI_IMPL_OPENGL_LOADER_GLBINDING3
-
#elif __has_include(<glbinding/Binding.h>)
-
#else#define IMGUI_IMPL_OPENGL_LOADER_GLBINDING2 #else #error "Cannot detect OpenGL loader!" #endif
#define IMGUI_IMPL_OPENGL_LOADER_GL3W // Default to GL3W
#endif
#endif