【问题标题】:Remove temporary files after compiling with Makefile使用 Makefile 编译后删除临时文件
【发布时间】:2016-10-28 00:57:11
【问题描述】:

我目前正在使用以下 Makefile 来编译我的 C 项目。

RM = rm -f
CFLAGS += -Wextra -Wall -Werror
CFLAGS +=   -I.

NAME = a.out

SRCS =  main.c

OBJS =  $(SRCS:.c=.o)


all:    $(NAME)
        $(NAME): $(OBJS)
        gcc $(OBJS) -o $(NAME) $(LDFLAGS)

clean:
        $(RM) $(OBJS)

fclean: clean
        $(RM) $(NAME)

re: fclean all

我想在我的 clean 命令中添加一些可以删除临时文件的东西,也就是说以~ 结尾的文件。 我必须这样做而不使用*~

【问题讨论】:

  • 为什么不使用*~
  • makefile 不会创建任何以~ 结尾的临时文件,它们来自哪里?
  • gcc 似乎是的,我在每个 make 上都有它们,我不能使用 *~ 由于我的学校规范禁止它
  • @Stargateur 自动保存文件被命名为#filename#。这些是 Emacs 版本文件。

标签: c makefile temporary


【解决方案1】:
TMP =  $(SRCS:.c=.c~)

clean:
        $(RM) -f $(OBJS)
        $(RM) -f $(TMP)

或者像@Barmar所说的

clean:
    -$(RM) $(OBJS)
    -$(RM) $(TMP)

最好避免RM = rm -f中的选项==> RM = rm

doc

【讨论】:

  • 应该使用-$(RM),这样它就不会停止生成文件,因为没有临时文件。
猜你喜欢
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多