命令make无法识别Makefile的[[]

时间:2018-08-23 09:18:55

标签: makefile gnu-make

我以前学习过Makefile,但是今天我键入命令“ make”时,Makefile中存在问题。

这是一段代码:

[ -d _build ] || mkdir _build

错误:

'[' is not recognized as an internal or external command, operable program or batch file.

并且有我的Make版本:

GNU Make 3.82.90
Built for i686-pc-mingw32

有人可以告诉我如何解决吗?

1 个答案:

答案 0 :(得分:3)

您的makefile是为Linux / Unix编写的,并且您正在Windows下运行它。

在makefile中,组成目标配方的命令是 用OS Shell语言编写。在Windows下,外壳为cmd。 在Linux下,默认为bash。在其他Unix变体中,它是sh或 其他外壳。

[ -d _build ] || mkdir _build

bash和其他Linux / Unix shell的有效命令。不是为了 cmd。几乎所有其他配方命令都适用 生成文件。您刚遇到第一个此类问题。

您的makefile在本机Windows下没有用。在Windows上,您有机会 在Linux虚拟机或Linux的Windows 10子系统下运行它的情况, 或适用于Windows的类Unix环境(例如Cygwin或MSYS2)。你可以 非常需要安装类似于Linux / Unix的makefile配方所需的工具 系统。

如果makefile很简单,则可以考虑翻译无法识别的shell 命令(如果可以的话)转换为cmd命令。