Gnuwin32:windows "The syntax of the command is incorrect." 上的生成文件
Gnuwin32: makefile on windows "The syntax of the command is incorrect."
我正在尝试调用 make 来编译我的代码,但我一直收到此错误:
C:\Users\lovel\Anaconda3\S4>make
mkdir -p build
mkdir -p build / S4k
The syntax of the command is incorrect.
make: *** [objdir] Error 1
这是 python 中我的 makefile 代码的一部分:
objdir:
mkdir -p $(OBJDIR)
mkdir -p $(OBJDIR) / S4k
mkdir -p $(OBJDIR) / modules
S4_LIBOBJS = \
$(OBJDIR)/S4k/S4.o \
$(OBJDIR)/S4k/rcwa.o \
$(OBJDIR)/S4k/fmm_common.o \
$(OBJDIR)/S4k/fmm_FFT.o \
$(OBJDIR)/S4k/fmm_kottke.o \
$(OBJDIR)/S4k/fmm_closed.o \
$(OBJDIR)/S4k/fmm_PolBasisNV.o \
$(OBJDIR)/S4k/fmm_PolBasisVL.o \
$(OBJDIR)/S4k/fmm_PolBasisJones.o \
$(OBJDIR)/S4k/fmm_experimental.o \
$(OBJDIR)/S4k/fft_iface.o \
$(OBJDIR)/S4k/pattern.o \
$(OBJDIR)/S4k/intersection.o \
$(OBJDIR)/S4k/predicates.o \
$(OBJDIR)/S4k/numalloc.o \
$(OBJDIR)/S4k/gsel.o \
$(OBJDIR)/S4k/sort.o \
$(OBJDIR)/S4k/kiss_fft.o \
$(OBJDIR)/S4k/kiss_fftnd.o \
$(OBJDIR)/S4k/SpectrumSampler.o \
$(OBJDIR)/S4k/cubature.o \
$(OBJDIR)/S4k/Interpolator.o \
$(OBJDIR)/S4k/convert.o`
我正在研究 Windows。我把'/'改成'\'也没用,我最后加了'\'也没用。
你必须删除斜杠周围的空格或参数解析认为有超过 1 个参数(你也可以忘记创建 $(OBJDIR)
因为 -p
选项创建所有不存在的目录到目标目录:
Unix/Linux 合规应为:
objdir:
mkdir -p $(OBJDIR)/S4k
mkdir -p $(OBJDIR)/modules
请注意,当使用 Windows mkdir
命令时,应删除 -p
选项(windows 版本默认执行此操作并且无法识别该选项) .根据您收到的消息,您可能 运行 是 windows 版本,因此它应该是:
objdir:
mkdir $(OBJDIR)\S4k
mkdir $(OBJDIR)\modules
(斜杠 不 被 Windows mkdir
命令接受,因此 $(OBJDIR)
也应该使用反斜杠构建)
斜杠用于基本命令中的命令开关,例如 mkdir
,否则您必须引用路径
objdir:
mkdir "$(OBJDIR)/S4k"
mkdir "$(OBJDIR)/modules"
(如您所见,拥有从 Linux 到 Windows 的可移植 makefile 相当困难,除非您 运行 它在 MSYS shell 中,其中 mkdir
是 MSYS 版本,请记住 make
命令也有原生版本和 MSYS 版本,我被抓住了一次:)
我正在尝试调用 make 来编译我的代码,但我一直收到此错误:
C:\Users\lovel\Anaconda3\S4>make
mkdir -p build
mkdir -p build / S4k
The syntax of the command is incorrect.
make: *** [objdir] Error 1
这是 python 中我的 makefile 代码的一部分:
objdir:
mkdir -p $(OBJDIR)
mkdir -p $(OBJDIR) / S4k
mkdir -p $(OBJDIR) / modules
S4_LIBOBJS = \
$(OBJDIR)/S4k/S4.o \
$(OBJDIR)/S4k/rcwa.o \
$(OBJDIR)/S4k/fmm_common.o \
$(OBJDIR)/S4k/fmm_FFT.o \
$(OBJDIR)/S4k/fmm_kottke.o \
$(OBJDIR)/S4k/fmm_closed.o \
$(OBJDIR)/S4k/fmm_PolBasisNV.o \
$(OBJDIR)/S4k/fmm_PolBasisVL.o \
$(OBJDIR)/S4k/fmm_PolBasisJones.o \
$(OBJDIR)/S4k/fmm_experimental.o \
$(OBJDIR)/S4k/fft_iface.o \
$(OBJDIR)/S4k/pattern.o \
$(OBJDIR)/S4k/intersection.o \
$(OBJDIR)/S4k/predicates.o \
$(OBJDIR)/S4k/numalloc.o \
$(OBJDIR)/S4k/gsel.o \
$(OBJDIR)/S4k/sort.o \
$(OBJDIR)/S4k/kiss_fft.o \
$(OBJDIR)/S4k/kiss_fftnd.o \
$(OBJDIR)/S4k/SpectrumSampler.o \
$(OBJDIR)/S4k/cubature.o \
$(OBJDIR)/S4k/Interpolator.o \
$(OBJDIR)/S4k/convert.o`
我正在研究 Windows。我把'/'改成'\'也没用,我最后加了'\'也没用。
你必须删除斜杠周围的空格或参数解析认为有超过 1 个参数(你也可以忘记创建 $(OBJDIR)
因为 -p
选项创建所有不存在的目录到目标目录:
Unix/Linux 合规应为:
objdir:
mkdir -p $(OBJDIR)/S4k
mkdir -p $(OBJDIR)/modules
请注意,当使用 Windows mkdir
命令时,应删除 -p
选项(windows 版本默认执行此操作并且无法识别该选项) .根据您收到的消息,您可能 运行 是 windows 版本,因此它应该是:
objdir:
mkdir $(OBJDIR)\S4k
mkdir $(OBJDIR)\modules
(斜杠 不 被 Windows mkdir
命令接受,因此 $(OBJDIR)
也应该使用反斜杠构建)
斜杠用于基本命令中的命令开关,例如 mkdir
,否则您必须引用路径
objdir:
mkdir "$(OBJDIR)/S4k"
mkdir "$(OBJDIR)/modules"
(如您所见,拥有从 Linux 到 Windows 的可移植 makefile 相当困难,除非您 运行 它在 MSYS shell 中,其中 mkdir
是 MSYS 版本,请记住 make
命令也有原生版本和 MSYS 版本,我被抓住了一次: