C中的简单makefile有问题

时间:2015-03-04 01:40:01

标签: makefile

我有点像C的初学者并有一个项目到期我需要包含一个makefile来编译我使用pthreads和semaphores的单个文件程序。我的makefile看起来像:

# Makefile for pizza program 
pizza: pizza.o
    gcc -lrt -lpthread -g -o pizza pizza.o

pizza.o: pizza.c
    gcc -lrt -lpthread -g -c pizza.o pizza.c

我一直在接受:

make: Nothing to be done for 'Makefile'.

之前我做过几个makefile,但从未收到过这条消息。我在makefile中尝试了不同的语义,并且只获得了相同的消息。是的,该命令是在目标和依赖关系行之后的选项卡。

在tcsh上使用gcc。我已经在SO上阅读了其他makefile帖子,但我无法使用任何答案来解决我的问题。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

make的参数是要构建的目标。

您正在运行make Makefile,告诉make尝试构建Makefile目标。

makefile中没有这样的目标,make没有适用于该目标的内置规则,并且该文件存在(并且被认为是最新的),这就是该消息告诉你的内容。 / p>

要运行默认目标(默认情况下是列出的第一个目标),您只需运行make(假设您的makefile使用默认名称Makefile)。

您还可以使用-f make参数来选择备用makefile名称。

因此make -f Makefile在这种情况下(因为Makefile是默认的搜索名称)与make做同样的事情。