次のようなディレクトリ構造のプロジェクトがあります:
$projectroot
|
+---------------+----------------+
| | |
part1/ part2/ part3/
| | |
+------+-----+ +---+----+ +---+-----+
| | | | | | |
data/ src/ inc/ src/ inc/ src/ inc/
part/src (または実際にはどこでも) にある、part?/src の c/c++ ソース ファイルを補完/リンクできる makefile をどのように記述すればよいでしょうか?
-I$projectroot/part1/src -I$projectroot/part1/inc -I$projectroot/part2/src のような操作を実行できますか?
それがうまくいくなら、もっと簡単な方法はありますか。対応する各パート フォルダーに makefile があるプロジェクトを見たことがあります。[この投稿では、bash 構文のように疑問符を使用しました]
ベストアンサー1
従来の方法は、Makefile
各サブディレクトリ ( part1
、など) に を配置して、それらを個別にビルドできるようにすることです。さらに、すべてをビルドする をプロジェクトのルート ディレクトリにpart2
配置します。「ルート」は次のようになります。Makefile
Makefile
all:
+$(MAKE) -C part1
+$(MAKE) -C part2
+$(MAKE) -C part3
make ターゲット内の各行は独自のシェルで実行されるため、ディレクトリ ツリーを遡ったり、他のディレクトリに移動したりする必要はありません。
ぜひご覧になってみてくださいGNU make マニュアル セクション 5.7; とても役に立ちます。