unix vi编辑器上的makefile如何创建一个

时间:2015-09-02 11:37:53

标签: makefile

imdb1: assignment1.o treecomp.o treefunction.o
        gcc -lm -o imdb1 assignment1.o treecomp.o treefunction.o

assignment1.o: assignment1.c assignment1.h
        gcc -Wall -ansi assignment1.c

treecomp.o: treecomp.c treecomp.h
        gcc -Wall -ansi treecomp.c

treefunction.o: treefunction.c treefunction.h
        gcc -Wall -ansi treefunction.c

当我去做 它给了我这个错误

treefunction.c:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
treefunction.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
treefunction.c:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
treefunction.c:9: error: expected ')' before '*' token
treefunction.c:10: error: expected ')' before '*' token
treefunction.c:11: error: expected ')' before '*' token
treefunction.c:12: error: expected ')' before '*' token
treefunction.c:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
treefunction.c:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
treefunction.c:34: error: expected ')' before '*' token
treefunction.c:38: error: expected ')' before '*' token
treefunction.c:51: error: expected ')' before '*' token
treefunction.c:55: error: expected ')' before '*' token
treefunction.c:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

它在cmd上编译得很好,但是当用makefile编译时,它会发出错误

任何人都可以请帮助

1 个答案:

答案 0 :(得分:0)

此命令gcc -Wall -ansi assignment1.c将尝试生成可执行文件a.out,而不是仅编译和生成目标文件。

对包含目标文件的所有目标进行如下更改,然后再次检查。

gcc -c -Wall -ansi assignment1.c