0

すべてをMakefilesのどこに配置しますか?

以前に見つけた同様の質問がありましたが、もう少し詳細が必要でした。GNU makeマニュアルも調べましたが、ドキュメントの山で迷子になりました。私はグーグルを試しましたが、良い例は見つかりませんでした。それで、私は私の最後の手段であったことをして、Makefileを自分でハッキングすることによってそれを理解しようとしました。私は持っています:

CC=gcc
CFLAGS=-Wall -g

clean: 
rm -f all: ex1

これは私のex1をCでコンパイルしませんでした。また、このmakeファイルにさらに追加したい場合。ex1、ex2のように、何でも運動します。すべてを一番上に置いて、

rm - f whatever

下の線はきれいですか?

あなたの助けと援助に感謝します。忍耐もありがたいです。

4

1 に答える 1

3

all実際には特別なことではなく、一般的に使用されるターゲット名にすぎません。最適に機能させるには、ファイルの最初のターゲットにする必要があります。これにより、デフォルトのターゲットになり、とgmake同じように機能しgmake allます。

通常、allターゲットには依存関係があり、これを構築する必要があります。例えば

all: myexe

rmターゲットに関連していますclean(これも特別なことではなく、一般的に使用される名前です)。次のように定義します。

clean:
    rm -f myexe

これにより、実行myexe時に削除されgmake cleanます。makefileが他のファイルをビルドする場合、それらもそこにリストされているはずです。

makefileについて知っておくべきことはまだたくさんあります。通常は、変数とテンプレートルールを使用します。これにより、繰り返しを避けることができます。しかし、これは単純な答えで説明できる以上のものです。

于 2012-06-27T18:41:36.370 に答える