【问题标题】:cygwin make and packages in PATHPATH 中的 cygwin 制作和软件包
【发布时间】:2014-02-11 17:22:33
【问题描述】:

我正在尝试从 Windows 中的命令提示符在 makefile 中运行 Cygwin 包。我手动将我需要的 Cygwin 包放在单独的文件夹中,并将它们添加到 PATH 环境变量中。我可以直接从命令行执行这些包,它们都按预期工作,但是当我将 bash 行添加到 makefile 时(例如:rm -f file.o),当我运行make clean 时它只是直接回显它并且不执行 rm 即使它在命令中起作用。

有人知道为什么它不能在 make 文件中工作吗?

编辑:这是代码的一部分

.PHONY: clean 
# Other Targets
clean:
    xargs -a rm.txt rm -f
    banner -c @ done

【问题讨论】:

  • 你能显示一些代码吗?看来你的想法是正确的,所以它可能只是一个 make 语法的事情。我总是被这种事情绊倒。
  • 你能发布 Makefile 中有趣的部分吗?
  • rm.txt 是空文件吗?

标签: makefile cygwin


【解决方案1】:

如果它在 bash 中运行,为什么不调用“bash.exe -c make”?

【讨论】:

    【解决方案2】:

    我将您的代码复制到 Makefile 并创建了另外 2 个文件:rm.txt 和 silly。以下是会议记录:

    x003347@D011-62:~/workarea/trials/mk_test> vi Makefile # copied your code
    x003347@D011-62:~/workarea/trials/mk_test> touch silly # create empty file
    x003347@D011-62:~/workarea/trials/mk_test> vi rm.txt   # contains file to be removed
    x003347@D011-62:~/workarea/trials/mk_test> ls
    Makefile  rm.txt  silly
    x003347@D011-62:~/workarea/trials/mk_test> make
    xargs -a rm.txt rm -f
    banner -c @ done
    make: banner: Command not found
    make: *** [clean] Error 127
    x003347@D011-62:~/workarea/trials/mk_test> ls
    Makefile  rm.txt
    x003347@D011-62:~/workarea/trials/mk_test>
    

    好的,banner 命令不起作用,但 rm 命令起作用!我的 rm.txt 包含一行“傻”字。

    我在您的代码中所做的更改是简单地使用制表符而不是 4 个空格来启动每个命令行。我不确定您的 Makefile 中有什么,因为当您在此处粘贴代码时它会自动转换为空格(我刚刚尝试过)。不过,我的猜测是,您需要确保在每个命令开头的 Makefile 中有真正的制表符。

    顺便说一句:我是在 linux 机器上做的,而不是 cygwin,所以这可能会有所不同......虽然它不应该。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2013-11-08
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      相关资源
      最近更新 更多