make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码文件,还可以编辑内核或模块,以实现工程化的管理,提高开发效率。

当make命令第一次执行时,它扫描Makefile找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描Makefile建立其依赖关系,然后编译它们。一旦主依赖编译之后,然后就编译主目标。

语法格式:  make [参数]

常用参数:

-r 禁用内置的隐含规则
-B 始终无条件make所有目标
-b 忽略兼容性
-C<目录> 更改为指定目录
-L 在符号链接和目标之间使用最后的修改时间
-n 实际上不运行任何命令,只显示出来
-o<文件> 不编译指定的文件
-e 环境变量覆盖makefile
-d 显示打印调试信息
-i 从命中忽略错误
-w 显示当前目录
-t 创建目标,而不是改造它们
-p 显示make的内部数据库
-q 安静模式
-R 禁用内置变量设置
-s 不回显命令
-I<目录> 搜索指定目录中包含的makefile
-f<文件> 读取指定文件作为makefile文件
-k 当有些目标不能make下去时,继续执行
— -debug=<标记> 显示调试信息的各种类型
-j<作业编号> 指定工作编号的作业一次完成
-l<负载> 不要启动多个任务,除非低于指定负载
-S 关闭-k
— -no-print-directory 关闭-w,即使它被打开
— -warn-undefined-variables 当一个未定义的变量被引用时发出警告
-W<文件> 指定目标文件

参考实例

读取指定文件作为makefile文件:

[root@uziwp ~]# make -f my_uziwp

为make命令提供不同的目录路径:

[root@uziwp ~]# make -C /uziwp/

打印调试信息:

[root@uziwp ~]# make -d | more