makefile入门教程(A)

Linux系统中编译C文件是用的gcc编译器,编译流程分为四个步骤:

  1. 预处理,生成预编译文件:
gcc -E m.c -o m.i
  1. 编译生成汇编代码:
gcc -S m.i -o m.s
  1. 汇编,生成目标文件:(这步以后生成的文件我们无法阅读)
gcc -c m.s -o m.o
  1. 链接,生成可执行文件:
gcc m.o 

如果想一步到位,用如下命令即可:

gcc m.c

编译器默认生成目标文件是a.out,如果想更改文件名称,需要使用-o参数:

gcc m.c -o x

在这里插入图片描述
附一张简单截图大家可以看一下。

Makefile的使用

上边做了一个简单的铺垫,下边我们来说一下makefile;编写makefile是自动化编译的必备技能,通过编写Makefile,我们可以简化很多操作。
我们写一个简单的程序(保存为moon.c):

#include <stdio.h>

int main(){
    printf("I am MonooseOS.\r\n");
    return 0;
}

我们在同级目录下新建makefile文件:

m:moon.c
        gcc moon.c -o x

第二行的前边是敲键盘上的tab键产生的
我们使用make命令一步到位,生成可执行文件x;截图如下所示;
在这里插入图片描述

我们解释一下我们上边做了什么?我们先看一下makefile的规则:

      target... : prerequisites ...

      command

      ...

     -------------------------------------------------------------------------------

target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

prerequisites就是,要生成那个target所需要的文件或是目标。

command也就是make需要执行的命令。(任意的Shell命令)
下一篇博客说明多文件编译。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值