make工具和Makefile文件基础指令

目录

一、make工具和Makefile文件的引入

二、编写C程序

三、使用make工具和Makefile文件编译

Makefile 变量

Makefile 模式规则

Makefile 自动化变量

 Makefile 伪目标

 文章编写C程序部分有一些语法错误,由于时间原因没有更正,特此说明,以示警告!


一、make工具和Makefile文件的引入

       当源码文件比较多的时候就不适合通过直接输入gcc命令来编译,这时候就需要一个自动化的编译工具.

       make:一般说GNU Make,是一个软件,用于将源代码文件编译为可执行的二进制文件,make工具主要用于完成自动化编译。make工具编译的时候需要Makefile文件提供编译文件。

       Makefile:make工具所使用的文件,Makefile文件描述了整个工程的编译、连接规则。  

特点:

  • 如果修改了某几个源文件,则只重新编译这几个源文件
  • 如果某个头文件被修改了,则重新编译所有包含该头文件的源文件

二、编写C程序

       编写一个小型的含有多个.c文件的C程序。

结果:

三、使用make工具和Makefile文件编译

make 命令会为 Makefile 中的每个以 TAB 开始的命令创建一个 Shell 进程去执行。

当执行“make clean”命令以后,前面编译出来的.o 和 main 可执行文件都被删除掉了,也就是完成了工程清理工作。

在我的代码中,main.o input.o 和 calcue.o 这三个依赖文件,我们输入了两遍,这种重复输入的工作就会非常费时间,而且非常容易输错,为了解决这个问题, Makefile 加入了变量支持。不像 C 语言中的变量有 int、char等各种类型, Makefile 中的变量都是字符串!类似 C 语言中的宏。

#Makefile 变量的使用
objects = main.o input.o calcu.o
main: $(objects)
    gcc -o main $(objects)

Makefile 变量

1、赋值符“=”
使用“=”在给变量的赋值的时候,不一定要用已经定义好的值,也可以使用后面定义的值。
2、赋值符“:=”

不会使用后面定义的变量,只能使用前面已经定义好的。
3、赋值符“?=”
如果变量前面没有被赋值,那么此变量就是本身,如果前面已经赋过值了,那么就使用前面赋的值。

4、变量追加“+=”
Makefile 中的变量是字符串,有时候我们需要给前面已经定义好的变量添加一些字符串进去,此时就要使用到符号“+=”。

Makefile 模式规则

当“%”出现在目标中的时候,目标中“%”所代表的值决定了依赖中的“%”值。

Makefile 自动化变量

 Makefile 伪目标

Makefile 有一种特殊的目标——伪目标,一般的目标名都是要生成的文件,而伪目标不代表真正的目标名,在执行 make 命令的时候通过指定这个伪目标来执行其所在规则的定义的命令。

使用伪目标主要是为了避免 Makefile 中定义的执行命令的目标和工作目录下的实际文件出现名字冲突,有时候我们需要编写一个规则用来执行一些命令。

.PHONY : clean

 文章编写C程序部分有一些语法错误,由于时间原因没有更正,特此说明,以示警告!

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值