无法使用 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
我最近开始使用 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