2016-03-31 21 views
3

私はこのようなフォルダ構造を持っています:Project/Libraries/Math、Project/Libraries/Math2。プロジェクトフォルダ内Cmakeにはディレクトリが含まれています

Iはmain.cppにを有しており、以下の内容をCMakeLists.txt:数学フォルダで

cmake_minimum_required (VERSION 2.6) 
project (CppMain) 
add_executable(CppMain main.cpp) 

include_directories(${CMAKE_CURRENT_SOURCE_DIR)) 

私はヘッダMyVectors.hを有し、Math2のフォルダに私が持っていますMyMatrices.hは、私はmain.cppにファイルに含めたい、これはと働くこと:

#include "Libraries/Math/MyVectors.h" 
#include "Libraries/Math2/MyMatrices.h" 

問題は、ものと同じ方法で、ヘッダMyMatrices.hを含んMyVectors.hヘッダーですリンカーはそれを見つけません。この問題を解決するために私はCMakeListsで何を変更できますか?

+1

MyVector.hとMyMatrices.hは同じフォルダに配置されていますか? –

+0

申し訳ありませんが、私は質問を編集しました。彼らは2つの異なるフォルダにあります。 – charles

答えて

1

これは、相対パスの古典的な場合のようです。

それを何
#include "../Math2/MyMatrices.h" 

:あなたは、次の行がMyVectors.hに導入すべきであるあなたが使用することができ、親ディレクトリ../でアクセスするファイルのためにmain.cpp

#include "Libraries/Math/MyVectors.h" 
#include "Libraries/Math2/MyMatrices.h" 

内のファイルを含めるために、これを行っています意味する?あなたのファイルMyVectors.hMathフォルダにある場合、../を使用すると、Mathの親ディレクトリLibrariesに移動します。そこから、必要なディレクトリへのパスをたどることができます。

より詳細には、別の質問に私がこの回答に見つけることができます:https://stackoverflow.com/a/35910234/2555668

関連する問題