makefile的几点疑问
鉴于Makefile与C难舍难分,因此标签中添加c,希望知道的大佬给予解答。
下午看了一会Makefile的文章,有些疑问。
Makefile文件:
# Makefile is a binary file
main:fun.o main.o
gcc -o main fun.o main.o
fun.o: fun.c
gcc -c fun.c
main.o: main.c
gcc -c main.c
由于名字是Makefile因此直接输入make就可以,如果将上面文件重命名为xxx make xxx就可以了,但是make main也可以,这是什么原理?
后面我将Makefile改成如下形式
# Makefile is a binary file
main:fun.o main.o
gcc -o main fun.o main.o
./main
rm *.o
fun.o: fun.c
gcc -c fun.c
main.o: main.c
gcc -c main.c
添加了./main与 rm *.o结果没有执行,这是为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
删除.o等一般使用虚目标clean解决。
运行编译成果 使用虚目标 run 解决。
make使用
-f
参数指定makefile文件名。make不带目标执行时 就去执行默认目标(第一个列出来的目标)
makefile对前导空白要求严格。
先去把 Makefile 的文档看了(你的第一个问题),和基本的 shell 知识了解了(你的第二个问题),再说吧。