libigl添加如下图所示的Viewer Menu时,出现了“无法打开包括文件: “imgui.h”: No such file or directory”的错误
很显然是libigl内嵌的imgui出了问题
从项目路径libigl-example-project-main\out\build\x64-Release\_deps\libigl-src\include\igl\opengl\glfw\imgui中查看发现并没有imgui.h这个文件
由于libigl的2.4版本是利用libigl的模板中的libigl.cmake自动下载libigl的相关库,这里应该是imgui相关文件下载不全的问题
先从https://github.com/ocornut/imgui中下载imgui所有相关文件,一开始本人向项目路径libigl-example-project-main\out\build\x64-Release\_deps\libigl-src\include\igl\opengl\glfw\imgui中直接添加imgui缺失的文件,但还是会出现无法找到文件的问题
为了解决这个问题,本人从libigl的先前版本的https://github.com/libigl/libigl-imgui/blob/master/CMakeLists.txt中得到灵感,决定从外部将imgui添加到项目libigl-example-project-main中,本人将先从https://github.com/ocornut/imgui中下载并解压后得到的imgui-master文件夹重命名为imgui并且放到项目libigl-example-project-main同级文件夹下,然后向项目libigl-example-project-main的CMakeLists.txt文件夹中添加如下如下内容:
add_library(imgui
../imgui/imgui.cpp
../imgui/imgui.h
../imgui/imgui_demo.cpp
../imgui/imgui_draw.cpp
../imgui/imgui_tables.cpp
../imgui/imgui_internal.h
../imgui/imgui_widgets.cpp
../imgui/imstb_rectpack.h
../imgui/imstb_textedit.h
../imgui/imstb_truetype.h
../imgui/imgui_fonts_droid_sans.h
../imgui/backends/imgui_impl_glfw.cpp
../imgui/backends/imgui_impl_opengl3.cpp
)
target_include_directories(imgui PUBLIC ../imgui)
target_include_directories(imgui PUBLIC ../imgui/backends)
target_compile_definitions(imgui PUBLIC -DIMGUI_IMPL_OPENGL_LOADER_GLAD)
target_link_libraries(imgui PRIVATE glad glfw)
将imgui添加为一个库(注意上述中的imgui_fonts_droid_sans.h是从https://github.com/libigl/libigl-imgui中下载并额外添加到imgui文件夹中的,如果没有这个文件,程序运行后也会报找不到imgui_fonts_droid_sans.h的错误),最后在项目libigl-example-project-main的CMakeLists.txt文件夹中添加如下内容:
target_link_libraries(${PROJECT_NAME} igl::core igl::glfw imgui)
即将imgui库链接到项目中,程序运行后不报错,问题解决