makefile的几点疑问

发布于 2022-09-06 09:44:54 字数 643 浏览 38 评论 0

鉴于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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半仙 2022-09-13 09:44:54

删除.o等一般使用虚目标clean解决。
运行编译成果 使用虚目标 run 解决。

make使用-f参数指定makefile文件名。
make不带目标执行时 就去执行默认目标(第一个列出来的目标)

makefile对前导空白要求严格。

太阳男子 2022-09-13 09:44:54

先去把 Makefile 的文档看了(你的第一个问题),和基本的 shell 知识了解了(你的第二个问题),再说吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文