熟悉makefile!用makefile的方式编译HELLO WORLD 能正常运行

什么是makefile?说白了就是定义一个规则,让make指令按照上面的规则去编译和链接程序

想要更熟悉makefile的同学可以参考一下陈皓所写的makefile教程

首先我们先要建立一个.c文件

vi hello.c

进入vi编译器

#include<stdio.h>
 
void main()
 
{
   printf("hello world hi\n");
}

然后Esc :wq保存

创建makefile文件

vi makefile

进入vi 编译makefile

hello:hello.c

#gcc hello.c -o hello  // 这里应该是Tab键加$gcc hello.c -o hello

然后Esc :wq 保存

这里我要解释一下makefile文件里面的代码

首先

冒号前面的hello是一个目标文件,也就是你下一步make之后要执行的文件

冒号后面的hello.c就是要生成那个hello所需要的文件或是目标

第二行的#gcc hello.c -o hello 也就是make需要执行的命令 这里我要强调一下 #一定不能少,如果没有这个符号执行make指令式会报错如果你不是超级用户也可以使用$

最后在linux上敲上make

编译成功,然后再敲上你刚才的那个目标文件./hello

屏幕上就会显示出 hello world hi

做完这步,我想还有很多人不明白makefile到底是什么个意思,本来多么简单的程序非要makefile一下,多麻烦,之前我也是这么想的,这个hello world直接用gcc编译多简单,但是如果你要是做大规模的程序时,gcc就会显得相当的繁琐了。

接下来,我们把这个hello world分成三个.c 和.h 文件再用makefile编译一下。

vi hello.c

#include<stdio.h>
#include "world.h"
#include "hi.h"
void main()
{
 printf("hello\n");
 world();
 hi();
}

vi world.c

#include <stdio.h>
void world()
{
 printf("world\n");
}

vi hi.c

#include <stdio.h>
void hi()
{
 printf("hi\n");
}

vi world.h

void world();

vi hi.h

void hi();

然后再修改makefile

vi makefile

hello:hello.o world.o hi.o
#gcc hello.o world.o hi.o -o hello 这里应该是Tab键加$gcc hello.o world.o hi.o -o hello
hello.o:hello.c
#gcc -c hello.c  这里应该是Tab键加$gcc -c hello.c
world.o:world.c
#gcc -c world.c  这里应该是Tab键加$gcc -c world.c
hi.o:hi.c
#gcc -c hi.c  这里应该是Tab键加$gcc -c hi.c

然后make

在执行./hello

屏幕上会得到

hello

world

hi

我想大家多少会明白了makefile的用法了,处理大量的文件时,makefile就对我们有很大的帮助了!

 

 

 

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值