2017-08-11 160 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中」),這是在實際的。