0

我想用 imgui 做一个小应用程序

要运行测试窗口,我使用 opengl glfw 后端

问题是我项目的lib/imgui_gl目录下的文件无法访问项目根目录下的文件可以访问的头文件

CMake 问题

这就是我的 CmakeList 文件的样子

cmake_minimum_required(VERSION 3.17)
project(boardserver)

set(CMAKE_CXX_STANDARD 20)
set(LIB_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/lib) # Lib folder


add_executable(boardserver main.cpp)

find_package(imgui CONFIG REQUIRED)
find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
find_package(SDL2 REQUIRED)
find_package(glfw3 REQUIRED)

## Imgui opengl glfw backend lib
set(imgui-gl_Includes "${LIB_FOLDER}/imgui_gl/")
add_library(imgui-gl STATIC
        ${LIB_FOLDER}/imgui_gl/imgui_impl_glfw.cpp ${LIB_FOLDER}/imgui_gl/imgui_impl_opengl3.cpp )


include_directories(${imgui-gl_Includes})
target_link_libraries(boardserver PRIVATE imgui::imgui GLEW::GLEW OpenGL::GL SDL2::SDL2 glfw imgui-gl)
4

1 回答 1

0

您需要告诉 CMakeimgui-glimgui::imgui目标链接,以便它也知道在哪里可以找到 imgui.h:

target_link_libraries(imgui-gl PUBLIC imgui::imgui)

作为现代 CMake 最佳实践,您可能还希望将其包含目录作为界面的一部分:

target_include_directories(imgui-gl PUBLIC "${LIB_FOLDER}/imgui_gl")

这些语句一起确保链接到的任何目标都可以imgui-gl看到正确的标题并知道要链接到什么。

于 2021-06-25T11:39:48.517 回答