麻烦makefile

我正在尝试写一个make文件:

1)只需input命令“make”,将文件myftpserver.c和myftpclient.c转换为myftpserver.o和myftpclient.o。

2)我还添加了一个“干净的”目标清理目录(删除所有的临时文件,目标文件和可执行文件)

3)使用gcc编译器。

我目前的版本不工作:

CC=gcc myftpserver: myftpserver.o $(CC) -o myftpserver.o myftpclient: myftpclient.o $(CC) -o myftpclient.o clean: ? // not sure what to put here 

这是我第一次做makefile。 我试了几个其他的组合,但似乎没有工作。 我究竟做错了什么?

Make有基本的C文件内置的规则,所以你不需要告诉它如何构建myftpserver.omyftpclient.o 。 这个Makefile应该可以正常工作,并且正确地包含.PHONY所以clean规则不会在一个名为“clean”的文件中被禁用,

 CC:=gcc .PHONY: clean all all: myftpserver myftpclient myftpserver: myftpserver.o myftpclient: myftpclient.o clean: rm -f *~ *.o myftpserver myftpclient 

去测试:

 $ make --dry-run gcc -c -o myftpserver.o myftpserver.c gcc myftpserver.o -o myftpserver gcc -c -o myftpclient.o myftpclient.c gcc myftpclient.o -o myftpclient 

希望这可以帮助!

您需要编译您的.o文件的说明以及rm shell命令来清除:

 CC=gcc myftpserver: myftpserver.o $(CC) -o myftpserver myftpserver.o myftpclient: myftpclient.o $(CC) -o myftpclient myftpclient.o myftpserver.o: myftpserver.c $(CC) myftpserver.c myftpclient.o: myftpclient.c $(CC) myftpclient.c clean: rm -f *~ *# *.o myftpserver myftpclient