C语言makefile文件简单介绍以及使用

目录

一、makefile的介绍

二、makefile的编写

 三、make命令

四、makefile文件中的变量

举个例子

作者有话要说


一、makefile的介绍

  1. 在linux和unix中,有一个强大的实用程序,叫 make ,可以用它来管理多模块程序的编译和链接,直至生成可执行文件
  2. make程序需要一个编译规则说明文件,称为 makefile ,makefile文件中描述了整个软件工程的编译规则和各个文件之间的依赖关系。
  3. makefile就像是一个shell脚本一样,其中可以执行操作系统的命令,它带来的好处就是我们能够实现“自动化编译”,一旦写好,只要一个make命令,整个软件功能就完全自动编译,提高了软件开发的效率
  4. make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说大多数编译器都有这个命令,使用make可以是重新编译的次数达到最小化

二、makefile的编写

makefile文件的规则可以非常复杂,比C程序还要复杂,初学先了解它的简单用法

vim makefile创建文件 

文件名:makefile,内容如下:

  • 第1行 :all: test100 test67 ......
  • all: 这是固定的写法
  • test100 test67表示需要编译目标程序的清单,中间用空格分隔开,如果清单很长,可以用 \ 换行

  • 第3行 : test100:test100.c
  • test100:表示需要编译的目标程序。
  • 如果要编译目标程序test100,需要依赖源程序test100.c,当test100.c的内容发生了变化,执行 make 的时候就会重新编译 test100

  • 第4行:gcc -o test100 test100.c
  • 这是一个编译命令,和在操作系统命令行输入的命令一样,但是要注意一个问题,在gcc之前要用 tab 键,看上去像8个空格,实际不是,一定要用tab,空格不行

  • 第300行: clean:
  • 清除目标文件,清除的命令由第301行之后的脚本来执行

  • 第301行:rm  -f  test67 test68 ......
  • 清除目标文件的脚本命令,注意了,rm之前也是一个 tab 键,不是空格

 三、make命令

makefile 准备好了,在命令提示符下执行 make 就可以编译 makefile 中 al l参数指定的目标文件 

执行make编译目标程序: 

因为全部的目标程序都是最新的,所以提示没有目标可以编译

执行make clean,执行清除目标文件的指令

修改 makefile 里面的程序文件,随便改点什么,只要改了就行

比如我们vim test1.c,打开之后顺便改点什么,加个空格都行

然后再执行 make:

四、makefile文件中的变量

  • makefile中,变量就是一个名字,变量的值就是一个文本字符串
  • makefile中的目标,依赖,命令或其他地方引用变量时,变量会被它的值替代

举个例子

  • 第1行:CC=gcc ,定义变量CC,赋值gcc
  • 第2行:FLAG=-g,定义变量FLAG,赋值-g
  • 第7行:$(CC)  $(FLAG) -o test1 test1.c
  • $(CC)$(FLAG)就是使用变量CC和FLAG的值,类似于C语言的宏定义,替换后的结果是:
  • gcc -g -o test1 test1.c

编译效果:

在makefile文件中,使用变量的好处:

  1. 如果在很多编译指令采用了变量,只要修改变量的值,就相当于修改全部的编译指令
  2. 把比较长的、公共的编译指令采用变量来表示,可以让makefile更简洁 

作者有话要说

  1. 到这里 Re:C语言 的专栏就已经结束了,这篇专栏从2022-08-07开始写的,到现在已经过去81天,写了将近3个月哈哈。
  2. 这篇专栏包括C语言90%的基础知识,都是非常精华的内容,后面的话我觉得好用的知识再做补充。
  3. 如果你认真看完这篇专栏,相信你的C语言水平已经有3成了,基础的话算入门了。接下来我会开始写C++的相关知识,有C的基础去学C++的话会轻松很多的

猜你喜欢

转载自blog.csdn.net/XiaoQiu__/article/details/127558323