我有一个为Linux操作系统编写的GNU makefile。我想在Windows上编译它,但是Windows有一些语法更改。我做了一些更改,但是在for循环语法上出现错误。
已经编写了文件代码,我必须对其进行修改才能在Windows OS上运行。附加了原始代码,并给出了我所做的更改 原始代码:
这是原始代码:
@for i in $(subdirs); do \ (cd $$i && $(MAKE) $@) || break; \ done
更改后:
# pass make directives to subdirectories
SHELL = sh
%:
for f in $$(subdirs); \
do \
(cd $$i && $(MAKE) $@) || break; \
done
# eof
我在第16行上得到了错误,这是for循环的第一行
GNUmakefile(16) : fatal error U1035: syntax error : expected ':' or '=' separator
答案 0 :(得分:1)
阅读nmake语法后,我进行了某些更改。现在问题已解决。 %:不需要,并且@for不起作用。因此,我们需要使用@echo off来关闭echo:然后for循环将使用简单的'for'关键字而不是@for起作用。 工作代码在这里:
SHELL = sh
# %:
@echo off :
for i in $(subdirs) ; \
do \
(cd $$i && $(MAKE) $@) || break; \
done
# eof