Makefile做“太多工作”

时间:2013-11-12 03:05:22

标签: unix gcc makefile

对于我的任务,我们应该编译cpp2html.c来生成cpp2html.o。我们要用lex.yy.c做同样的事情。 lex.yy.c由命令flex cppscanner.l创建。最后,我们应该将.o文件链接在一起以生成一个名为cpp2html的可执行程序。 我的makefile应该使用gcc而不是g ++,我相信我正在做的。我已经尝试将这个特定的makefile用于这个程序几个小时了,因为g ++部分的工作正常。当我提交这个makefile时,我被告知“当只有cpp2html.c被更改时,你的makefile工作太多了。”我尝试查找此错误,并且只能找到在g ++部分出错的人;我试过调整它,但它没有用。我试过改变makefile的格式,我试过改变代码,但我只是不知道我做错了什么。

我如何改变我的makefile来做它需要的东西,而不是让它做“太多工作”?

我的makefile如下。

cpp2html: cpp2html.o lex.yy.o
    gcc -g -DDEBUG cpp2html.o lex.yy.o
    mv a.out cpp2html
cpp2html.o: cpp2html.c
    gcc -g -DDEBUG -c cpp2html.c
    flex cppscanner.l
lex.yy.o: lex.yy.c
    gcc -g -c lex.yy.c

编辑:

cpp2html: cpp2html.o lex.yy.o
    gcc -g cpp2html.o lex.yy.o
    gcc -g -DDEBUG cpp2html.o lex.yy.o -o cpp2html
cpp2html.o: cpp2html.c
    gcc -g -c cpp2html.c
lex.yy.c: cppscanner.l
    flex cppscanner.l
lex.yy.o: lex.yy.c
    gcc -g -c lex.yy.c

0 个答案:

没有答案