Makefile:2:***缺少分隔符。停止

时间:2014-05-29 06:37:23

标签: makefile

我有两个.cpp文件,即decryptor.cppprod-ent.cpp 我已经创建了一个Makefile来编译Linux平台中的两个文件。

all: decryptor.cpp prod-ent.cpp
       g++ prod-ent.cpp -o prod-ent -g
       g++ decryptor.cpp -o decryptor -g -lcryptopp
clean:
       rm prod-ent
       rm decryptor

每当我尝试执行Makefile时,它会向我显示以下错误:

  

Makefile:2: * 缺少分隔符。停止。

我是创建makefile的新手,无法弄清楚我的错。请帮我纠正代码。

提前致谢!!

1 个答案:

答案 0 :(得分:69)

g++rm命令前需要一个真正的制表符而不是空格。如果仍然失败 然后你的编辑器会插入空格,即使你正在按键盘上的Tab键。您需要将编辑器配置为插入硬标签(以ASCII格式表示)。

喜欢

all: decryptor.cpp prod-ent.cpp
*****g++ prod-ent.cpp -o prod-ent -g
*****g++ decryptor.cpp -o decryptor -g -lcryptopp
clean:
*****rm prod-ent
*****rm decryptor

取而代之的是*****替换TAB。

您可以通过命令检查您的身边

cat -e -t -v  makefile

如果^I被赋予该行,则该行显示为TAB,并以$结束该行。

您也可以;

all: decryptor.cpp prod-ent.cpp ; g++ prod-ent.cpp -o prod-ent -g ; g++ decryptor.cpp -o decryptor -g -lcryptopp
clean: ; rm prod-ent ; rm decryptor