Make简介
—— 工程管理器,顾名思义,是指管理较多的文件
—— Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它
能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同
时,它通过读入的Makefile文件的内容来执行大量的编译工作。
—— Make将只编译改动的代码文件,而不用完全编译。
Makefile基本结构
—— Makefile是Make读入的唯一配置文件
—— 由make工具创建的目标体(target),通常是目标文件或执行文件
—— 要创建的目标体所依赖的文件(dependency_file)
—— 创建每个目标体时需要运行的命令(command)
—— 注意:命令行前面必须是一个"TAB键",否则会编译错误
Makefile格式
target: dependency_file
command
例:
hello.o: hello.c hello.h
gcc -c hello.c -o hello.o
make命令
—— make命令格式
make [options] [target]
选项 含义
-C dir读入指定目录下的Makefile
-f file读入当前目录下的file文件作为Makefile
-i 忽略所有的命令执行错误
-I dir指定被包含的Makefile所在目录
-n 只打印要执行的命令,但不执行这些命令
-p 显示make变量数据库和隐含规则
-s 在执行命令时不显示命令
-w 如果make在执行过程中改变目录,打印当前目录名
Makefile的隐含规则
—— 隐含规则1:编译C程序的隐含规则
"<n>.o"的目标的依赖目标会自动推导为"<n>.c",并且其生成的命令
是"$(CC) -c $(CPPFLAGS) $(CFLAGS)"
—— 隐含规则2:链接Object文件的隐含规则
"<n>"目标依赖"<n>.o",通过运行C的编译器来运行链接程序生成(
一般是"ld"),其生成命令是:"$(CC) $(LDFLAGS) <n>.o"
Makefile基础知识(学习笔记)
最新推荐文章于 2023-09-27 17:30:30 发布