2013-03-23 63 views
1

我想学习如何在Ubuntu使用的makefile与C(我为您可能已经猜到初学者)。有一个关于这个主题的“一书中对C”一章,他们给了3个文件一个简单的例子:main.c中,sum.c,sum.h(无码),并使用此代码生成文件:这个Makefile有什么问题?

sum: main.o sum.o 
    gcc –o sum main.o sum.o 
main.o: main.c sum.h 
    gcc –c main.c 
sum.o: sum.c sum.h 
    gcc –c sum.c 

现在,我试图编译在Eclipse这个代码,但它不工作。我已经用上面的代码和前面提到的3个文件创建了一个名为makefile的文件。这是我得到的错误:

make all 
make: *** No rule to make target `all'. Stop. 

我将不胜感激任何帮助。 感谢

+0

制作告诉你:“没有规则,使目标'所有'” ...... – 2013-03-23 17:52:18

回答

7

运行“让所有”,意味着你正在试图建立一个名为“所有”的目标,但还没有定义的。

你需要在第一行添加:

all: sum 

顺便说一句,如果你运行“作出”(不带参数),将建立的第一个目标(如果没有“所有”目标)。这就是为什么我建议你把'全部'目标作为第一个目标。

+0

没有,如果有一个‘全能’的目标,将首先建立是否有其他的目标,不管到订单。 – 2013-03-23 17:52:59

+5

@ H2CO3:第一个目标是当“做”被称为是内置的一个,无论是否存在是一个所有。 @Jah:我还建议增加:'.PHONY:all'如果你使用GNU使。 – 2013-03-23 18:09:46