For loop 为什么我不能在Windows上的makefile中使用?

For loop 为什么我不能在Windows上的makefile中使用?,for-loop,makefile,For Loop,Makefile,我试过很多次了,但是make告诉我n不应该在那里 我的简单生成文件: all: for n in $(ALL_FILES); do\ echo $$n; \ done 错误输出: 他不应该在那里 更新: 谢谢大家!当我在linux中运行它时,一切正常。我发现Windows不支持for语法 > P>你应该考虑这个函数,但是你也可以使用它,确保你的for循环将在MaX文件之外运行,特别是检查$ALL文件的格式是可迭代的: 生成文件 实例 @埃德:我看到你修改,这让我

我试过很多次了,但是make告诉我n不应该在那里

我的简单生成文件:

all:
    for n in $(ALL_FILES); do\
        echo $$n; \
    done
错误输出:

他不应该在那里

更新:

谢谢大家!当我在linux中运行它时,一切正常。我发现Windows不支持for语法

> P>你应该考虑这个函数,但是你也可以使用它,确保你的for循环将在MaX文件之外运行,特别是检查$ALL文件的格式是可迭代的:

生成文件 实例
@埃德:我看到你修改,这让我很难过!我发现问题了,谢谢!为什么要在之前添加@?我的环境是Windows这只是为了避免重复命令如果您在Windows上运行,您编写的命令必须是可以在Windows shell cmd.exe中运行的有效Windows命令。这里,您尝试运行的命令是bashshell的有效UNIX命令。您可以编写在windows中有效的FOR,也可以使用cygwin或linux之类的工具。因此,您认为“FOR”不是makefile中的函数或关键字?不是,它只是make将执行的命令,因此它必须有效。如果您的代码正常工作,则意味着windows接受unix样式的循环,否则请检查foreach函数的链接,或者在此处:
all:
    @for n in $(shell seq 1 5); do\
        echo $$n; \
    done
$ make
1
2
3
4
5