2011-06-23 2 views
1

誰でもmakefileに書き込まれたクリーンなターゲットを実行する方法を教えてくれます。 は、ここで私は、ターゲットとして、クリーンを使用して、これらすべてのCファイルをきれいにするいくつかのquestions.howを持っている私のコードmakefiles - ターゲットとしてクリーン

jamm : hello.o ghola.o 
    gcc $^ -o [email protected] 

%.o : %.c 
    gcc -c S< 

clean : 
    rm *.c 

です。私たちはコマンドmake -f file1を与えます(ファイル名はfile1です)。ターゲットはjammと実行されていますが、クリーンなターゲットを実行しません。コマンドラインでmake cleanと言うと、そのようなファイルやディレクトリは表示されませんこの概念を取得することができません私は私のmakefileの一つで、私のメイクfile.please guyss

+0

少なくともサンプルファイルをフォーマットしてください。 –

+0

とにかくmakeファイルでクリーンなターゲットを持っているようには見えません –

+0

私はそれを行いますが、どのようにしてフォーマットに設定するのか分かりません。 – karthik

答えて

1

で書かれていたときに誰もがこれらのクリーンを実行する方法を教えてくださいすることができ、cleanターゲットは次のようになります。

.PHONY: depend clean all new 

clean: 
    rm *.o *~ $(PROGS) ~/include/*.gch 

実行可能文の行はタブで始まることに注意してください。

いくつかの他の事:

  1. あなたはおそらくあなたの.cファイルをrmする必要はありません。それらはあなたのソースファイルであり、それらをコーディングするすべての作業を失う可能性があります。
  2. あなたのオブジェクト(私の例では.o)と実行可能ファイル(私の例では$(PROGS)、実際には実行ファイルの名前を含む変数)ファイルとプリコンパイルされたヘッダ(.gch)清潔なスレートから。
  3. cleanのように、実際にその名前でファイルを生成しないターゲットは、前提条件として.PHONYと記載されている必要があります。これにより、cleanというファイルがあっても、コマンドを実行する必要があることがわかります。あなたは
  4. あなたのメイクのニーズがあなたのメイクファイルと同じディレクトリにある

    • はちょうど

      make clean 
      

      に入るが、ことを確認して、特定のターゲット(例えばclean)を実行するにはMakefileまたはmakefileと命名します。あなたが作るGNUを使用している場合は、「クリーン」という名前のファイルがある場合、また、あなたのディレクトリにチェックGNUmakefile

3

それを呼び出すことができます。 makeの呼び出しでは、という名前のファイルを何らかの形で生成する必要があると思われる可能性があります。この問題を解決するには

、ちょうどあなたのきれいなターゲット.PHONY indicator前に追加しよう:ところで

:YOUR CLEAN TARGETはBADになります。あなたは、.oファイルの代わりに、削除しないでください。 c ????

+0

+1の '.PHONY' – Dan

関連する問題