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

use*_*363 37 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
Run Code Online (Sandbox Code Playgroud)

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

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

我是新来创建makefile并且无法弄清楚我的错.请帮我纠正代码.

提前致谢 !!

Jay*_*hoi 89

你需要一个真正的标签而不是前面的空格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
Run Code Online (Sandbox Code Playgroud)

而是*****替换TAB.

您可以按命令检查您的身边

cat -e -t -v  makefile
Run Code Online (Sandbox Code Playgroud)

它的显示行以^Iif 开头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
Run Code Online (Sandbox Code Playgroud)