1

我刚开始用艰难的方式学习 C,我正在练习 #2。

链接在这里: http ://c.learncodethehardway.org/book/ex2.html

说明是制作一个只有这个的文件:

    CFLAGS=-Wall -g

    clean:
       rm -f ex1

所以我创建并保存为 Makefile.c,但是,在我的编译器(MINGW)中指定运行它时,我收到了这个错误:

$make clean
cc    makefile.c    -o makefile
makefile.c:3:1: warning: data definition has no type or storage class [enabled by default]
makefile.c:3:9: error: 'Wall' undeclared here (not in a function)
makefile.c:3:15: error: 'g' undeclared here (not in a function)
makefile.c:5:1: error expected ',' or ';' before 'clean'
cc    Makefile.c    -o Makefile
Makefile.c:3:1: warning: data definition has no type or storage class [enabled by default]
Makefile.c:3:9: error: 'Wall' undeclared here (not in a function)
Makefile.c:3:15: error: 'g' undeclared here (not in a function)
Makefile.c:5:1: error expected ',' or ';' before 'clean'
make: *** No rule to make target 'clean'. Stop.

有什么想法我做错了什么和/或如何解决这个问题?谢谢!

4

3 回答 3

3

晚了,但你的makefile应该被命名为“Makefile”

Makefile 不是 C 程序的源代码,而是 Makefile 工具的一组指令,当您键入“make foo”时就会使用它。

于 2013-07-23T03:20:29.170 回答
1

Makefile 可以称为“makefile”或“Makefile”

根据人为:

“通常你应该将你的makefile称为makefile或Makefile。(我们推荐Makefile,因为它出现在目录列表的开头附近,紧挨着其他重要文件,如README。)检查的名字,GNUmakefile,对于大多数人来说是不推荐的生成文件。”

于 2013-09-21T23:50:28.150 回答
0

您是否使用制表符而不是空格?网页有空格,但生成文件需要制表符。请注意makefile 代码后的作者注释。

于 2013-06-28T18:04:45.093 回答