Makefile cygwin make和路径中的包

Makefile cygwin make和路径中的包,makefile,cygwin,Makefile,Cygwin,我正在尝试从windows中的命令提示符在makefile中运行cygwin包。我手动将需要的cygwin包放在单独的文件夹中,并将它们添加到PATH环境变量中。我可以直接从命令行执行包,它们都可以按预期工作,但是当我将bash行添加到makefile示例:rm-f file.o中时,当我运行“make clean”时,它会直接回显它,即使它可以从命令中工作,也不会执行rm 有人知道为什么它不能在make文件中工作吗 编辑:这是代码的一部分 .PHONY: clean # Other Targ

我正在尝试从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

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

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

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上,所以这可能会有所不同。。。虽然不应该。你能展示一些代码吗?看来你的想法是对的,所以这可能只是一个语法问题。我总是在这类事情上磕磕绊绊。你能发布Makefile的重要部分吗?rm.txt是一个空文件吗?