次のmakefileを実行するとエラーが発生しますmake -f makefile2 install
(インストールは別として、残りは機能しています):
all:myapp
#which compiler
CC = gcc
#Where to install
INSTDIR = /usr/local/bin
#where are include files kept
INCLUDE = .
#Options for development
CFLAGS = -g -Wall -ansi
#Options for release
# CFLAGS = -O -Wall -ansi
myapp: main.o 2.o 3.o
$(CC) -o myapp main.o 2.o 3.o
main.o: main.c a.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
2.o: 2.c a.h b.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c
3.o: 3.c b.h c.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c
clean:
-rm main.o 2.o 3.o
install: myapp
@if [ -d $(INSTDIR) ]; \
then \
cp myapp $(INSTDIR);\
chmod a+x $(INSTDIR)/myapp;\
chmod og-w $(INSTDIR)/myapp;\
echo "Installed in $(INSTDIR)";\
else
echo "Sorry, $(INSTDIR) does not exist";\
fi
次のエラーが発生します。
error /bin/sh: 7: Syntax error: end of file unexpected
make: *** [install] Error 2
私が理解していることから、それはmakefileの最後の行の空白/タブ/非UNIX文字の問題です(インストール後:)。しかし、すべてのスペースを削除して表に置き換えようとしても、makefileを正しく実行できませんでした。このコードは、私が読んでいるプログラミングの本から直接引用したものであり、一例です。助けていただければ幸いです。