我试图在linux上生成一个makefile。当我在makefile上运行“make”时,它只会说“mkFile”是最新的,其中mkFile是我的makefile的名称。在运行make命令之前,我没有任何.o文件或编译过的程序。我的目录中只有C文件,所以我不知道为什么它不会生成可执行文件和.o文件。我有5个文件:Main.c、convertstence.c、convertAll.c、convertstence.h和convertAll.h
Main.c包含convertAll.h,convertAll.c包含convertAll.h。
这是我的代码:

main: Main.o convertSentence.o convertAll.o

gcc -o program Main.o convertSentence.o convertAll.o

Main.o: Main.c convertAll.h

gcc -c Main.c

convertAll.o: convertAll.c convertSentence.h

gcc -c convertAll.c

convertSentence.o: convertSentence.c

gcc -c convertSentence.c

clean:

rm *.o

最佳答案

当我在makefile上运行“make”时,它只会说“mkFile”是最新的,其中mkFile是我的makefile的名称。
这表示您正在使用以下命令行:

make mkFile

当您使用它时,它认为需要构建名为mkFile的目标。
您需要使用:
make -f mkFile

使用时,它指示make在名为make的文件中定义了mkFile的目标和依赖项。
另一个选项是将mkFile重命名为makefileMakefile,然后使用
make

07-24 12:37