ここには簡単なメイクファイルがあります。メイクファイルに関する質問
私は2つの質問を持っています。
- すべて:$(SOURCES)$(実行可能) なぜSOURCEを依存関係に置くのですか?
".cpp.o:":
CC=g++ CFLAGS=-c -Wall LDFLAGS= SOURCES=main.cpp hello.cpp factorial.cpp OBJECTS=$(SOURCES:.cpp=.o) EXECUTABLE=hello all: $(SOURCES) $(EXECUTABLE) $(EXECUTABLE): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o [email protected] .cpp.o: $(CC) $(CFLAGS) $< -o [email protected]
SOURCEは、依存関係として含まれていない場合 - その後、ソースファイルを変更した後、「すべての作る」を実行すると、再コンパイルされていない実行可能になります。 – dave
.cpp.o:は、拡張子が.cppのファイルを後続のコマンドを実行してファイルの.oバージョンに変換できる古いスタイルのサフィックスルールです。 GNU make OLD-FASHIONED SUFFIXルールに関する詳細な情報は、http://www.gnu.org/software/make/manual/make.html#Suffix-Rules – dave