Linux Makefile的基本使用

描述

文中所使用的Linux版本是:Ubuntu

01 make工具和makefile的引入

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

make工具的工作包括:

1.如果只修改了某几个源文件,则只编译这几个源文件

2.如果某个头文件被更改了,则重新编译所有包含该头文件的源文件

make工具主要用于完成自动化编译,make编译时需要makefile文件提供编译文件

02 Vim编辑器操作Makefile

配置Vim编辑器

sudo vi /etc/vim/vimrc

set ts=4——设置Tab键为4个字节

set nu——每行的开头显示行号

(在最下面添加上面两个语句)

编译

使用步骤

(1)六 制作文件

②编辑以下代码:

规则格式:

目标... :依赖文件集合...

命令1

命令2

....

编译

(每条命令必须以Tab开始,不能使用空格)

③输入指令make

④最后输入指令make clean 可以清楚所有的.o文件

编译

03Makefile基本语法

makefile变量的使用

objects = main.o input.o calcu.o

主:$(对象)

GCC -o main $(对象)

编译

赋值“=”

名称 = 管理员1

当前 =$(名称)

名称 = 管理员

打印:

@echo 当前:$(当前)

这里打印的值时admin,而不是admin1,因为打印的是最终变量的值

编译

编译

赋值“:=”

名称 = 管理员1

当前 :=$(名称)

名称 = 管理员

打印:

@echo 当前:$(当前)

这里打印的值时admin1,而不是admin。 这就是和“=”的区别

编译

编译

赋值“? =”

当前 ?=你好

打印:

@echo 当前:$(当前)

//这里打印hello

当前:=管理员

当前?=你好

打印:

@echo 当前:$(当前)

//这里打印的值时admin1,而不是admin。 这就是和“=”的区别

编译

编译

自动化变量

@,%,<,?,^,+,$*

最常用的三个变量:@,<,$^

功能表:

编译

编译

编译

伪目标

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

如果在工作目录下有相同的文件时,需要声明伪目标,例如. PHONY:XXX

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分