将根目录添加为包含目录

时间:2017-08-11 14:09:30

标签: c++ cmake

在编译期间,虽然我在CMake中添加了相应的包含目录,但找不到某些头文件。不幸的是,这是我坚持使用的代码和目录结构,我无法对include语句进行任何更改。

我有以下目录结构:

projectfolder
+--source1
|  |--prog.cpp
|  |--anotherHeader.h
|  |--CMakeLists
|
+--includefolder
|  +--source1_include
|  |  |--header.h
|  
|--CMakeLists

项目文件夹中的CMakeLists如下所示:

project (project)
include_directories(includefolder)
add_subdirectory(source1)

prog.cpp有:

#include  "source1_include/header.h"

和header.h有:

 #include  "anotherHeader.h"

(不要问我为什么,我不了解自己,也许这与最初这是Visual Studio项目的事实有关)

我想我可以通过添加

解决这个问题
include_directories(.)

到source1目录中的CMakeLists但不幸的是它不会那样工作。找不到另一个Header.h。

1 个答案:

答案 0 :(得分:1)

我假设"。"是"项目文件夹"

如果我理解正确,你添加了-I" projectfolder",所以现在" source1_include / header.h"正确找到" projectfolder / source1_include / header.h"

现在," header.h"尝试包含" anotherHeader.h",它不在其文件夹中,也不在任何包含的文件夹中。它实际上在" source1"。所以cmake错误输出是正确的。

你需要移动" anotherHeader.h"进入你的包含文件夹(我的推荐),或编辑" header.h"通过正确的相对路径找到它" ../ source1 / anotherHeader.h" (不推荐),或添加include_directories(" source1"),它实际上就是这样。