Makefile笔记02之error:***commands commence before first target. stop

来源:互联网 发布:淘宝心选没有彩虹系统 编辑:程序博客网 时间:2024/05/29 08:49

前人的路,我正在走。。。

下面是一个Makefile文件:

x:

echo $A

A = B  

echo there

执行make后将得到:

error:***commands commence before first target. stop

原因:在赋值语句A =B 后的命令echo无效,但是echo前面又有tab字符,于是就相爱相杀了。

解法:可以在赋值语句前出现命令(tab字符一定要有),或者在本Makefile文件中去掉赋值语句A = B 

网上其他说法:

1. 上一行换行符号 \ 后面有空格

2. 本行前面的空白有非法字符


1)Makefile可能是以命令行开始:以[Tab]字符开始,但不是一个合法的命令行(例如,一个变量的赋值)。命令行必须和规则一一对应。

2)产生第二种的错误的原因可能是一行的第一个非空字符为分号,make会认为此处遗漏了规则的“target:prerequisite”部分。

阅读全文
0 0
原创粉丝点击