从子目录和父目录中CMake链接文件

时间:2014-03-04 15:04:13

标签: c++ cmake

我有一个文件夹网:

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

的错误

任何人都可以帮我请求吗?在我的情况下,如何在文件夹中的文件之间进行链接?

1 个答案:

答案 0 :(得分:3)

要解决此特定问题,请在主CMakeLists.txt中添加此行,然后再添加子文件夹:

include_directories(".")

这将允许编译器从根路径开始查看resources/r1.hpp中的文件。

但是,我建议你看看一些CMake项目的例子,因为它似乎并不是以标准的方式做事(例如,通常一个好的方法是添加一个创建自己的库的子目录,然后你链接到你的主要可执行文件)

相关问题