make命令的功能是用于编译内核或源码文件。make是GNU工程化编译工具,用于编译众多相互关联的源代码文件,也可以编译内核或模块功能,以工程化的工作方式,提高开发效率。
初次运行make命令时,它会通过扫描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<文件> |
指定目标文件 |
参考实例
编译当前工作目录下的工程源码:
[root@linuxcool ~]# make
读取指定文件作为Makefile文件:
[root@linuxcool ~]# make -f makefile
为make命令提供指定的不同目录路径:
[root@linuxcool ~]# make -C /linux
显示全部的调试信息:
[root@linuxcool ~]# make -d