文中所使用的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
全部0条评论
快来发表一下你的评论吧 !