【问题标题】:Makefile : how to generate zip file named after current directoryMakefile:如何生成以当前目录命名的 zip 文件
【发布时间】:2019-07-08 16:00:20
【问题描述】:

我尝试编写一个 makefile,但我卡住了。

在这个项目中,make 应该生成/更新一个 .zip 文件,该文件以包含 makefile 的目录命名。

MyWorkingDirectory/ -> MyWorkingDirectory.zip

这里有人给了我一些代码,但它失败了 /bin/sh: -c: ligne 0: 意外标记“(”附近的语法错误

CIBLE:= $(shell  basename  "`pwd`".zip)
SRC=blabla
OBJ=blabla
all: $(CIBLE)

$(CIBLE): $(OBJ)
   rm $@ 2>/dev/null;zip -j $@ $^

我有 GNU make 4.2.1

谢谢!

【问题讨论】:

  • “它失败了”不是我们可以做任何事情的问题报告。
  • 对不起。制作失败,出现以下错误:/bin/sh: -c: ligne 0: syntax error near unexpected token "("
  • 您的环境肯定比您在此处提到的要多,否则上面的makefile 在某些重要方面与您实际使用的makefile 不同。那个makefile对我来说很好用。您使用的是什么操作系统?
  • 我猜你的默认 shell 不是 bash。
  • 这是 bash !但我修好了。第一行不是问题。我会在第一篇文章中解释。谢谢!

标签: makefile gnu-make


【解决方案1】:

您也可以通过以下方式获取当前目录的名称:

CIBLE := $(notdir $(abspath .))

这绕过了外壳,这可能是您的问题。

【讨论】:

    【解决方案2】:

    第一行不是问题...

    在makefile中,我引用了所有的$@

    rm "$@" 2>/dev/null;zip -j "$@" $^
    

    我确保我的 CIBLE 名称中没有括号。 我认为括号是问题所在。

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 2017-11-20
      • 1970-01-01
      • 2023-04-09
      • 2017-12-06
      • 1970-01-01
      • 2017-08-18
      • 2015-10-09
      • 2023-02-24
      • 1970-01-01
      相关资源
      最近更新 更多