带有glfw的opengl没有与imgui c ++链接[重复]

Posted

技术标签:

【中文标题】带有glfw的opengl没有与imgui c ++链接[重复]【英文标题】:opengl with glfw not linking with imgui c++ [duplicate] 【发布时间】:2020-08-29 12:47:13 【问题描述】:

我正在学习 opengl,并决定通过在项目中添加以下文件来将 imgui 用于现有的 opengl cmake 项目:

target_sources(Application PRIVATE
vendor/include/imgui/imgui.cpp
vendor/include/imgui/imgui_draw.cpp
vendor/include/imgui/imgui_impl_glfw.cpp
vendor/include/imgui/imgui_impl_opengl3.cpp
vendor/include/imgui/imgui_widgets.cpp
vendor/glad/glad.c
vendor/include/stb_image/stb_image.c
src/Indexbuffer.cpp
src/Shader.cpp
src/Texture.cpp
src/Vertexarray.cpp
src/Vertexbuffer.cpp
)

虽然这在 Windows 上运行良好,但是当我在 linux 中构建它时,链接器显示错误提示:

in function `ImGui_ImplOpenGL3_Init(char const*)':
imgui_impl_opengl3.cpp:148: undefined reference to `glGetIntegerv'
imgui_impl_opengl3.cpp:230: undefined reference to `glEnable'
imgui_impl_opengl3.cpp:231: undefined reference to `__glewBlendEquation'

所有其他 glfw 和 opengl 函数都在我的 application.cpp 中工作,只有在我将 imgui 文件添加到项目时才会中断。

【问题讨论】:

【参考方案1】:

问题不是 imgui,而是 lib glfw 和 glew。所以看来你还没有链接库

【讨论】:

以上是关于带有glfw的opengl没有与imgui c ++链接[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 gcc 11.2 在 linux 上编译 imgui、glfw、opengl 失败

如何在 imgui 窗口中使用 opengl glfw3 渲染?

如何在 GLFW 窗口中限制我的每秒帧数? (使用亲爱的 ImGui)

OpenGL 纹理导致 ImGUI 窗口永久失焦

Simple2D-15(音乐播放器)使用 glfw 库

我如何在 CMAKE 中链接 GLFW 和 Dear ImGUI