2013-10-26 34 views
1

不-相當重複:CMake include path包括從並行目錄結構的文件

我本來像這樣的目錄結構:然後

root 
    src 
     foodir 
      foo.cpp 
      foo.h 

頭文件移入自己的,平行的目錄:

root 
    src 
     foodir 
      foo.cpp 
    include 
     foodir 
      foo.h 

問題是..其中foo.cpp用於只使用#include "foo.h",它現在必須使用#include "foodir/foo.h"(compil編輯-Iinclude)。

好的,所以它不是一個真正的「問題」,但如果我可以保留「foo.h」而不是「foodir/foo.h」(很多文件),那將是最好的。有什麼辦法,用cmake的,有相應子目錄include/編譯器看?

回答

1

你只需要通過合適的-I<dir>/foobar說法。例如-Iinclude/foobar可能工作。當使用make你通常添加的選項CPPFLAGS(什麼是realky使用取決於項目的具體規則,當然)。

2

要添加到include/foodir編譯器的搜索路徑列表,只需使用include_directories。假設你的頂級的CMakeLists.txt是「根」:

include_directories(${CMAKE_SOURCE_DIR}/include/foodir) 
+1

...或者,如果你已經在CMake的2.8.11或更高版本,使用更強大的['target_include_directories'(HTTP:/ /www.cmake.org/cmake/help/v2.8.12/cmake.html#command:target_include_directories)來代替。 – ComicSansMS

相關問題