2017-05-17 11 views
0

私はgnu makeファイルを作成してC++単体テストをビルドして実行しています。 makefileに.oファイルを、makeファイルを保持するのと同じディレクトリに置いています。メークファイルターゲットを評価するためのディレクトリの指定方法は?

私たちは、配送のために私たちの製品を作るために使用されるmakefileのセットを持っています。これらのmakefileは、それぞれの.oファイルを、対応するC++ソースファイルを持つ同じディレクトリに置きます。

私の単体テストメークファイルは、その.oターゲットを "%.o:%.cpp"と定義しています。そのmakefileでは、VPATHを定義して.cppファイルの場所を指定します。さらに、私のユニットテストコンパイルコマンドは、g ++ MMDとMPオプションを使って.dファイルを生成して使用します。

ここに私が持っている問題があります。

単体テストメイクファイルのディレクトリを見て、単なる.oターゲットを評価するようにしたいのです。

ソースファイルが存在する場所に.oファイルがすでに生成されている場合は、私のユニットテストのmakefileで.oファイルを再構築する必要があるかどうかを判断するだけのディレクトリが必要です。

しかし、それは起こっていません。製品提供メイクファイルにソースコードが存在する場所に.oを入れた場合、単体テストメイクファイルには.oが表示され、.oはビルドする必要はないという。

私のユニットテストのmakefileが.oファイルターゲットを評価する際にユニットテストmakeファイルディレクトリだけを考慮するようにする方法はありますか?

答えて

1

.oファイルがVPATHの設定で見つかったとしますか?

あなたは、特定の種類のファイルへの参照を制限するために、パターン固有のvpathを使用することができます。

vpath %.cpp $(SRCDIR) 

の代わりに、はいグローバルVPATH

+0

を設定!それがまさに私が必要としていたものです。ありがとう! – KenK

関連する問題