12

私はメイクファイルを学んでおり、簡単なメイクファイルの作成方法を知っています。ネストされたメイクファイルに移行しています。ここに私のディレクトリ構造があります

/src
...makefile
...main.cpp
...foo
......makefile
......foo.cpp
......foo.h

ルートmakefileが呼び出されると、ディレクトリfoo内の makefile が呼び出されます。ここに私の質問があります

  1. すべてのオブジェクト ファイルをリンクするためのコードを記述するには、どのmakefileを使用すればよいですか? ルート makefile にある場合、そこにすべてのオブジェクト ファイル名を指定する必要がありますか?
  2. このネストされた makefile はベスト プラクティスですか? それとも、ルートにあるメイクファイルを 1 つだけにするのがよいのでしょうか?

どんな助けでも素晴らしいでしょう!

4

3 に答える 3

2

make よりも簡単な構文を持ち、make の多くの落とし穴を回避する、SConsのような最新のビルド システムがあります。たとえば、SCons はソース ファイルをスキャンして独自に依存関係を判断しますが、make では依存関係を手動で指定する必要があります。たとえば、新しい #include ステートメントを実装ファイルに追加すると、ヘッダーが変更されても (新しい依存関係を追加しない限り)、make はその実装ファイルを再コンパイルしません。SCons は新しい依存関係を自動的に検出し、必要に応じて再コンパイルします。

于 2009-04-07T04:02:37.697 に答える