【问题标题】:MakeFile for C++ projectC++ 项目的 MakeFile
【发布时间】:2020-08-07 02:16:41
【问题描述】:

我编写了自己的 makefile - 将用于编译我的 C++ 项目-

但我遇到了一些问题:

  1. 我需要删除所有临时文件;对象、可执行文件和那些用于 UNIX 的对象

    前两个我是这样做的;但是我该如何实现后者呢?

    干净:

     rm -f $(OBJS) $(EXEC)
    
  2. 我需要在 makefile 所在的文件夹中使用 tar 命令压缩 test.zip 文件夹中的所有文件(包括它),我该怎么做?

    焦油:

【问题讨论】:

  • 欢迎来到 Stack Overflow。 1)您对标点符号的漠视使您的问题很难解析。 2) “那些用于 UNIX 的”是什么意思? makefile 中是否已经有它们的列表?您可以从文件夹中的文件列表中选择它们吗? 3) 请每个问题一个问题。 4) 你的意思是你想压缩每个文件,还是把所有文件做成一个压缩包,然后再压缩?
  • @Beta 嗨,我被要求删除所有 OBJS 和 EXEC(就像我已经做过的那样)以及所有其他临时文件。关于 zip 在 make 文件的当前位置只有文件(没有文件夹)我想将它们全部压缩在一起,当然包括 make 文件

标签: c++ makefile gnu


【解决方案1】:

您想删除所有“临时文件”,但临时文件是人们不打算保留很长时间的文件。像 Make 这样的工具无法在不被告知的情况下了解人们的意图。

要从命令行创建Makefiletest.zip/ 的压缩存档,您可以使用如下命令:

tar -czvf archive.tgz Makefile test.zip

你可以把它放在 makefile 的规则中,如下所示:

archive.tgz:
    tar -czvf archive.tgz Makefile test.zip

一旦你有这么多的工作正常,进一步的改进是可能的。

【讨论】:

  • 嗨,你误会了,我想使用 make 命令制作一个 zip 文件,也就是说我想输入 make tar 然后查看正在创建的 zip 文件
  • @john:是的,这就是 rule 的用途。您没有指定希望规则的目标是“tar”,所以我选择了“archive.tgz”。
  • 非常感谢,请您让我与您聊天,以便对我的文件进行短暂锁定(仅 10 行),我将非常感激。再次感谢!
  • @john:我不知道如何打开聊天室,但您可以编辑您的问题以附加 makefile。
猜你喜欢
  • 2021-07-20
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多