1
如果程序(或庫)尚未構建,我有2個使用命令時崩潰的makefile,因爲make re
調用fclean
,應該刪除該文件並如果找不到該文件,則會崩潰。下面是生成文件的庫Makefile:如果程序尚未構建,fclean會給出錯誤
NAME = lib.a
CC = cc
CFLAGS = -Wall -Wextra -Werror
SRC = *.c
OBJ = $(SRC:.c=.o)
INC = Includes
all: $(NAME)
$(NAME):
@$(CC) -I $(INC) $(CFLAGS) -c $? $(SRC)
@ar rc $(NAME) $? $(OBJ)
@ranlib $(NAME)
clean:
@/bin/rm -f $(OBJ)
fclean: clean
@/bin/rm $(NAME)
re: fclean all
.PHONY: all clean fclean re
當我打電話讓再和lib.a仍然存在犯規,我得到
rm: lib.a: No such file or directory
make: *** [fclean] Error 1
之一反正是有得到它只是忽略fclean
命令,如果找不到lib.a
?
感謝
我需要7分鐘來接受你的答案。感謝:) 你有什麼提示,我可以在哪裏學習寫一個更好的生成文件? – dietbacon
手冊是一個很好的(雖然有點密集和簡潔)閱讀。這裏有makefile教程,但其中大多數都是平庸的質量(充其量)。 John Graham-Cumming最近更新了他的[The Gnu Make Book](http://www.nostarch.com/gnumake),我只讀了一點,但我完全認爲它會很棒(他的博客文章/ etc 。關於make多年來一直很棒)。最終,核心思想是你教會如何從其所有輸入文件創建輸出文件,然後讓處理事情。 –
謝謝!將考慮購買該書:) – dietbacon