CMake如何包括没有源头?

Jai*_*iro 4 c++ cmake header-files

这可能是一个虚拟的问题,但我从字面上看google的前两个页面都没有成功。
我正在编写仅标头的库,并且无法正确设置CMake配置,以便在构建解决方案时给定的main.cpp查找正确的包含。
如何做到这一点?

编辑

因此,我可能应该给出更详细的解释。
可以说我有一个./src文件夹:./src/core./src/wrappers。在每个文件夹中,我都有一些.h文件需要包含在main.cpp文件中:

#include <src/core/reader.h>
Run Code Online (Sandbox Code Playgroud)

仍然当我输入CMakeList.txt类似的内容时:

include_directories(src/core)
add_executable(main main.cpp)
Run Code Online (Sandbox Code Playgroud)

我收到类似src/core/reader.h这样的消息:没有这样的文件或目录。

sky*_*ack 5

为了能够使用该路径,您应该参考的父目录src
假设顶层CMakeLists.txt位于的同一级别src,则可以改用:

include_directories(${CMAKE_SOURCE_DIR})
Run Code Online (Sandbox Code Playgroud)

从以下文档中CMAKE_SOURCE_DIR

到源树顶层的路径。

如果src直接位于顶层目录中,则应使用类似以下的内容:

#include <src/whatever/you/want.h>
Run Code Online (Sandbox Code Playgroud)

也就是说,有两个建议:


πάν*_*ῥεῖ 1

只需添加一个include_directories()指令即可找到目标项目可以在哪里找到您的仅标头库。


根据您的编辑。寻找

 #include <src/core/reader.h>
Run Code Online (Sandbox Code Playgroud)

你需要添加

 include_directories(/full_parent_path_of_src)
Run Code Online (Sandbox Code Playgroud)