无法使用 gcc 11.2 在 linux 上编译 imgui、glfw、opengl

failure to compile imgui, glfw, opengl on linux with gcc 11.2

我最近开始使用 C++ 进行编码,我目前正在进行的项目需要 imgui。所以我在与源代码相同的文件夹中的名为“include”的文件夹中设置了 .h 和 .cpp 库。我目前正在尝试 运行 https://github.com/ocornut/imgui/tree/master/examples/example_glfw_opengl3 中的 cpp 并使用 gcc imgui.cpp -lstdc++ -lglfw -lGL -limgui 用 gcc 编译它,但我只是得到

/usr/bin/ld: cannot find -limgui
collect2: error: ld returned 1 exit status

是的,我知道 link 中有一个 make 文件,但我正在使用另一个文件夹中的文件。

假设您将 imgui 下载到一个名为 $IMGUI_DIR 的地方并且包含您的主要功能的文件是 main.cpp,您的编译命令行应如下所示:(\ 只是用来中断命令)

g++ main.cpp -o main \
$IMGUI_DIR/imgui*.cpp $IMGUI_DIR/backends/imgui_impl_glfw.cpp $IMGUI_DIR/backends/imgui_impl_opengl3.cpp \
-I $IMGUI_DIR -I $IMGUI_DIR/backends \
-lglfw -lGL

按顺序,你告诉编译器:

  • 您的代码在哪里以及将输出放在哪里
  • 要包含哪些 Imgui 代码,即核心库和您要使用的两个后端
  • Imgui 代码应该在哪里寻找它的 headers

如果这一切听起来很多,知道您可以简单地构建您链接的示例并在编译时使用 make IMGUI_DIR=/path/to/imgui

覆盖 IMGUI_DIR