【发布时间】:2020-03-26 04:27:42
【问题描述】:
例如,我有这样的项目层次结构......
CMAKE_PROJECT/
|
|-build/
|-include/
|-Entity.hpp
|-Scene.hpp
|-src/
|-Entity.cpp
|-Scene.cpp
CMakeLists.txt
如何让我的包含文件显示在我的 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)
我在网上搜索了一下,发现了这个,
CMake: How to show headers in "Header files" in Visual Studio project?
它可以工作,但GLOB_RECURSE 被认为是一种不好的做法。有替代品吗?
【问题讨论】:
-
您可以列出
add_executable命令的头文件和源文件吗?或者可能使用source_group命令? -
@Someprogrammerdude 它工作了!......虽然我可以发誓我之前尝试将标题添加到
add_executable......不太清楚为什么它现在工作......这可能是这个问题的范围,但是您是否知道为什么我的src文件夹中有一个src文件夹。我的包含文件夹也是如此。例如,src/src/<some_source_files>。在我的项目层次结构中,它绝对不是那样的。这是 CMake 造成的吗? -
可能与 Codelite IDE 设置有关?我不知道,因为我自己并没有真正使用它。
-
@Someprogrammerdude 它似乎与 IDE 相关,因为当我为另一个 IDE 构建源代码时,文件结构完全不同。您可以发布您的第一条评论作为答案,我很乐意接受它
-
有一个非常相似的问题,有几个答案here。