首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令make无法识别Makefile的“[”

问命令make无法识别Makefile的“[”
EN

Stack Overflow用户
提问于 2018-08-23 17:18:55
回答 1查看 332关注 0票数 0

我以前学过Makefile,但今天我输入命令"make“时,Makefile中出现了一个问题。

下面是这段代码:

代码语言:javascript
复制
[ -d _build ] || mkdir _build

以及错误:

代码语言:javascript
复制
'[' is not recognized as an internal or external command, operable program or batch file.

下面是我的Make版本:

代码语言:javascript
复制
GNU Make 3.82.90
Built for i686-pc-mingw32

有人能告诉我怎么修吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 17:55:14

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

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

代码语言:javascript
复制
[ -d _build ] || mkdir _build

是bash和其他一些Linux/Unix shell的有效命令。不是给cmd的。makefile中的几乎所有其他配方命令都是如此。您刚刚遇到了第一个这样的问题。

你的makefile在原生Windows下是没有用处的。在Windows上,你有机会在Linux虚拟机上运行它,或者在Linux的windows10子系统下运行,或者在类Unix的环境下运行,比如Cygwin或MSYS2。您可能需要在类似Linux/Unix的系统中安装makefile配方所需的工具。

如果makefile很简单,您可以考虑将无法识别的shell命令转换为cmd命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51982322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档