我有点像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帖子,但我无法使用任何答案来解决我的问题。
非常感谢任何帮助!
答案 0 :(得分:1)
make
的参数是要构建的目标。
您正在运行make Makefile
,告诉make
尝试构建Makefile
目标。
makefile中没有这样的目标,make没有适用于该目标的内置规则,并且该文件存在(并且被认为是最新的),这就是该消息告诉你的内容。 / p>
要运行默认目标(默认情况下是列出的第一个目标),您只需运行make
(假设您的makefile使用默认名称Makefile
)。
您还可以使用-f
make
参数来选择备用makefile名称。
因此make -f Makefile
在这种情况下(因为Makefile
是默认的搜索名称)与make
做同样的事情。