1

メイクファイルが機能しない理由がわかりません。エラーをグーグルで調べたところ、空白とタブに関する情報がいくつかありましたが、どうすればよいかわかりません。

エラー: makefile:17: *セパレーターがありません。止まる。

# see http://www.gnu.org/software/make/manual/make.html
#     http://www.gnu.org/software/make/manual/make.html#Automatic-Variables
CXX=g++
CXXFLAGS=-c -Wall -g
LDFLAGS=
OBJECTS= main.o Player.o Territory.o Continent.o Game.o Color.o
TITLE=ass1
ARCHIVE=$(TITLE).tar.gz

.PHONY : all clean debug valgrind archive

# make all
all: $(OBJECTS) $(TITLE)

# make ass
$(TITLE): $(OBJECTS)
$(CXX) $(LDFLAGS) -o $@ $^

# make %.o
%.o: %.cpp %.h
$(CXX) $(CXXFLAGS) $^

# make clean
clean :
rm -f *.o *.gch $(TITLE) 

# make debug
debug : $(TITLE)
cgdb ./$<

# make valgrind P0=-Test P1=0
valgrind : $(TITLE)
valgrind --tool=memcheck --leak-check=yes ./$< $(P0) $(P1)

# http://unixhelp.ed.ac.uk/CGI/man-cgi?tar
archive :
tar cfz $(ARCHIVE) --ignore-failed-read *.cpp *.h *.pdf Makefile

# additional dependencies

main.o: Continent.h Player.h Territory.h 
Player.o: Player.h
Territory.o: Territory.h
Continent.o: Continent.h
Game.o: Game.h
Color.o: Color.h
4

1 に答える 1

4

コマンドは (スペースではなく) タブでインデントする必要があります。例えば、

$(TITLE): $(OBJECTS)
    $(CXX) $(LDFLAGS) -o $@ $^
^ this is a tab (in disguise...)
于 2013-04-09T18:38:25.800 に答える