C++ 如何让CMake在显示include文件夹时生成我的项目?

C++ 如何让CMake在显示include文件夹时生成我的项目?,c++,cmake,ide,codelite,C++,Cmake,Ide,Codelite,比如说,我有这样的项目层次结构 CMAKE_PROJECT/ | |-build/ |-include/ |-Entity.hpp |-Scene.hpp |-src/ |-Entity.cpp |-Scene.cpp CMakeLists.txt 如何让我的include文件显示在我的CodeLite项目中。它完美地显示了我的src文件,但是include文件夹是空的。IDE中的一切编译和构建都很好,只是头部包含

比如说,我有这样的项目层次结构

CMAKE_PROJECT/
|
   |-build/
   |-include/
       |-Entity.hpp
       |-Scene.hpp
   |-src/
       |-Entity.cpp
       |-Scene.cpp
   CMakeLists.txt
如何让我的include文件显示在我的CodeLite项目中。它完美地显示了我的src文件,但是include文件夹是空的。IDE中的一切编译和构建都很好,只是头部包含的内容在项目中不可见。我可以对我的CMakeLists做些什么来补救这个问题

cmake_minimum_required(VERSION 3.13.4)

project(CMake_Project)
set(EXECUTABLE_NAME "CMake_Project")

set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_STANDARD_REQUIRED YES)
set (CMAKE_CXX_EXTENSIONS OFF)
set (CMAKE_BUILD_TYPE Debug)

set(SOURCES src/Entity.cpp 
            src/Scene.cpp)

include_directories(include)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../")

set(SFML_DIR "C:\\libs\\SFML-2.5.1\\lib\\cmake\\SFML")
set(SFML_STATIC_LIBRARIES TRUE)

find_package(SFML 2.5 COMPONENTS  audio network graphics window system REQUIRED)
add_executable(${EXECUTABLE_NAME} ${SOURCES})
target_link_libraries(${EXECUTABLE_NAME} sfml-audio sfml-network sfml-graphics sfml-window sfml-system)
我在网上搜索发现了这个


它是有效的,但GLOB_递归被认为是一种不好的做法。是否有其他方法?

在项目中也包括头文件的通常方法是在命令中列出它们

也许像

set(SOURCES src/Entity.cpp 
            src/Scene.cpp)

set(HEADERS include/Entity.hpp 
            include/Scene.hpp)

add_executable(${EXECUTABLE_NAME} ${SOURCES} ${HEADERS})

可以将头文件与命令的源文件一起列出吗?或者可能使用命令?@Someprogrammerdude它起作用了!。。。。。。虽然我可以发誓我曾经尝试过将头添加到add_可执行文件中。。。不太清楚为什么它现在起作用了。。。这可能超出了这个问题的范围,但是您是否知道为什么我的src文件夹中有一个src文件夹。我的include文件夹也是如此。例如,src/src/。在我的项目层次结构中绝对不是这样的。这是CMake造成的吗?可能与Codelite IDE设置有关?我不知道,因为我自己并不真正使用它。@Someprogrammerdude它似乎与IDE有关,因为当我为另一个IDE构建源代码时,文件结构完全不同。你可以发布你的第一条评论作为答案,我很乐意接受。这里有一个非常相似的问题,有几个答案。