2017-08-11 127 views
1

在编译过程中某些头文件都没有找到,虽然我加入了相应的包括CMake的目录。不幸的是这是代码和目录结构我坚持,我不能改变在包括语句什么。加根目录包括目录

我有以下目录结构:

​​

CMakeLists在projectfolder看起来是这样的:

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,但不幸的是它不会那样工作。 anotherHeader.h未找到。

回答

1

我假设 “”是 “projectfolder”

如果我理解正确的,您添加-I “projectfolder”,所以现在 “source1_include/header.h” 正确地认定 “projectfolder/source1_include/header.h”

现在,“头。 h”的尝试包括‘anotherHeader.h’,这是不在其文件夹,而不是在任何所包括的文件夹。它实际上在“source1”中。所以cmake是正确的错误。您需要将“anotherHeader.h”移动到您的包含文件夹中(我的建议),或编辑“header.h”以通过正确的相对路径找到它“../source1/anotherHeader.h”(不是推荐),或添加include_directories(“source1中”),这是在实际的。