我有两个.cpp文件,即decryptor.cpp
和prod-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的新手,无法弄清楚我的错。请帮我纠正代码。
提前致谢!!
答案 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