【发布时间】:2020-12-10 05:25:28
【问题描述】:
我正在学习 makefile,为了尝试一下,我编写了一个包含以下文本的 makefile:
blah: blah.o
cc blah.o -o blah
blah.o: blah.c
cc -c blah.c -o blah.o
blah.c:
echo '\#include <stdio.h> int main(){ return 0; }' > blah.c
clean:
rm -f blah.o blah.c blah
不幸的是,通过输入make 命令我得到了这个错误:
blah.c:1:1: error: stray ‘\’ in program
\#include <stdio.h> int main(){ return 0; }
^
blah.c:1:2: error: stray ‘#’ in program
\#include <stdio.h> int main(){ return 0; }
^
blah.c:1:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
\#include <stdio.h> int main(){ return 0; }
^
Makefile:4: recipe for target 'blah.o' failed
make: *** [blah.o] Error 1
我并不真正理解错误,因为我正确地转义了 # 字符(如我所想)。
感谢任何帮助!
【问题讨论】:
-
如果你不知道如何在命令行上做某事,那么你绝对没有机会成功使用 make。 Make是一个自动化工具。它使您手动执行的操作自动化。首先尝试在命令行上手动生成源文件,然后您就会知道如何使用 make 来生成。