我想知道的是如何编写一个编译程序的makefile,然后使用命令'make'删除在该过程中创建的目标文件,因此我不必在之后运行命令'make clean'。这是我当前的makefile:
prog: prog.o prog_func.o
gcc prog.o prog_func.o -o prog -Wall -std=c99
prog.o: prog.c prog_func.h
gcc prog.c -c -Wall -std=c99
prog_func.o: prog_func.c prog_func.h
gcc prog_func.c -c -Wall -std=c99
clean:
rm prog.o prog_func.o
修改
这就是它的完成方式:
prog: prog.o prog_func.o
gcc prog.o prog_func.o -o prog -Wall -std=c99
rm prog.o prog_func.o
prog.o: prog.c prog_func.h
gcc prog.c -c -Wall -std=c99
prog_func.o: prog_func.c prog_func.h
gcc prog_func.c -c -Wall -std=c99
现在有效。感谢您的快速回复。
答案 0 :(得分:2)
构建可执行文件后,只需在可执行命令
之后给出相同的命令(rm命令)答案 1 :(得分:0)
如何编译而不制作像这样的文件
gcc -Wall -o prog prog.c
此命令不会生成o文件。
答案 2 :(得分:-1)
我刚刚举了一个示例。
makebuild: clean prog
prog:
gcc a.c -o a.o
clean:
rm a.o
跑步'制作'从命令行将首先' rm' a.o文件,然后运行' gcc a.c -o a.o'。这里唯一的问题是它不会第一次工作,因为makebuild首先调用clean,它会抛出一个错误,因为它找不到a.o文件。你必须检查' rm'仅当a.o文件存在时。
类似的东西:
clean:
if a.o exist
rm a.o