2016-09-27 10 views
1

と複数のモジュールで、私は樹枝のこの種を持っています。 私は私のcppファイルは(ヘッダは-のみ)cmakeの

#include "utilities/include/typedefs.h" 

これは、ファイルを見つけることができないに含めるしようとすると、私は

project(Utilities LANGUAGES CXX) 

cmakelist.txt

https://cmake.org/cmake/help/v3.6/command/add_library.html#interface-libraries

私のユーティリティを使用してみました。私が試した:私は、コンパイラがの#include文を見つけることができるように、私のモジュールCMakeList.txtファイルに何をする必要がありますものを見つけようとしている

#include "include/typedefs.h" 
#include "typedefs.h" 

(動作しません)。

トップレベルがあります

... 
add_subdirectory(utilities) 
add_subdirectory(Module1) 
add_subdirectory(Module2) 
.. 

私はトップレベルのcmakelist.txtに追加:(動作しない)

include_directories("${Utilities_SOURCE_DIR}/include") 

私はまだそれをリンクする必要はありません、ので、 .cppファイルはありません。 #異なるモジュールに#includeできなければなりません。

答えて

1

ターゲットと一緒にtarget_include_directoriesを使用する必要があります。一例として
:特に

#include <typedefs.h> 

使用相対パス:

target_include_directories(my_target PUBLIC "${Utilities_SOURCE_DIR}/include") 

そして、ターゲットmy_targetに属するすべてのソースファイルとしてヘッダにアクセスすることができるであろう。

+0

'#include 'では、ファイルを見つけることができず、 '#include" ...で他の種類のパスも見つけられませんでしたが、本当に変わってしまいました。これはCLionで動作しますが動作しませんQtCreator ... –

+0

@Lorac私はQtCreatorを使用します。それはcmakeで作られたインクルージョンに続く問題を抱えていますが、ビルドを開始すると通常動作します。 – skypjack

関連する問題