我有一个文件夹网:
main
headers
cls1.hpp cls2.hpp ...
sources
cls1.cpp cls2.cpp ...
resources
r1.hpp r2.hpp ...
我尝试了更多cmake方法来链接文件,比如
set(SRC ${SRC})
父目录中的和
set(SRC ${SRC} ${CMAKE_CURRENT_SOURCE_DIR}/cls1.cpp PARENT_SCOPE)
在subdir
中OR
file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE HDR_FILES ${PROJECT_SOURCE_DIR}/*.hpp)
获取.cpp和.hpp文件,但是当我这样做时
#include "resources/r1.hpp"
我收到类似"resources/r1.hpp" No such a file or directory
任何人都可以帮我请求吗?在我的情况下,如何在文件夹中的文件之间进行链接?
答案 0 :(得分:3)
要解决此特定问题,请在主CMakeLists.txt中添加此行,然后再添加子文件夹:
include_directories(".")
这将允许编译器从根路径开始查看resources/r1.hpp
中的文件。
但是,我建议你看看一些CMake项目的例子,因为它似乎并不是以标准的方式做事(例如,通常一个好的方法是添加一个创建自己的库的子目录,然后你链接到你的主要可执行文件)