質問 |
||
| QNo.4001435 | Makefileについて | |
|---|---|---|
| 質問者:tobasu |
makeファイルの書き方で悩んでいます。 makeファイルは書いたことがなく、ほとんど丸写しです。 私がしたいのは、 (1)run:部分で削除するファイルがなかった場合、エラーとなり次の行へ進みません。なくても(エラーでも/エラー回避して)次の行へ進む方法が知りたいです。 もうひとつは(2)run:部分で、cleanを実行し、makeしてrunを実行させる方法が知りたいです。 --------------以下、サンプルMakefileです。 CC = gcc OBJS = main.o sub.o PROG = test.exe .c.o: $(CC) -c $< -o $@ $(PROG) : $(OBJS) $(CC) $(OBJS) -o $(PROG) $(OBJS) : Makefile clean: rm -f *.o $(PROG) run: rm *.log <---- (1)ここでファイルがないとエラーで止まる $(PROG) all: <-- (2)[clean]を実行して、makeして、[run]を実行させたい 以上です。 |
|
困り度:
|
||
| 質問投稿日時: 08/05/06 13:14 |
||
回答良回答10pt |
|
| ANo.2 | 書いてる間に#1さんが答えてくれたようなので若干補足 # うろ覚えな記憶で書いてるので間違ってるかもしれないけど… $(OBJS) : Makefile これは要らない気がします。あっても問題はありませんが。 run: <TAB>-rm *.log - を追加するとコマンドがエラーで返ってきても止まらなくなります。 エラーを出さない方法でも良いんですが、知っていて損はないはず。 all: clean $(PROG) run [clean]を実行して、[$(PROG)]を実行して、[run]を実行する。 このように、ファイルだけではなく、ルールにも依存することが出来ます。 |
|---|---|
| 回答者:_himajin_ | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/05/06 13:43 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答20pt |
|
| ANo.1 | >(1)run:部分で削除するファイルがなかった場合、エラーとなり次の行へ進みません。なくても(エラーでも/エラー回避して)次の行へ進む方法が知りたいです。 Makefileを知らないのはともかく、基本的なコマンドも知らないとつらいです。この場合、rmコマンド。 rm -f *.log でファイルが無くてもエラーになりません。 >(2)run:部分で、cleanを実行し、makeしてrunを実行させる方法が知りたいです。 make all すると、 make clean;make;make run と同じにしたいということでしょうか。 all: clean $(PROG) run と、コロンの後に並べて書きます。毎回make cleanするのは無駄だと思いますよ。 |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/05/06 13:28 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |