Makefile学习笔记

1. makefile 简单介绍
 Windows系统里的 Visual studio/Dev C++等IDE工具(Integrated Development Environment)将C语言的预处理、编译、汇编、链接等过程集成在一起,而在Linux系统下需要编写GCC命令才能完成编译操作。当项目文件很多的时候,效率太低了。因此采用Makefile的方法实现编译的统一管理。

2. makefile 的规则
目标目标依赖
 [Tab]  命令

目标是最终想要的文件,一般为可执行文件

目标依赖是生成可执行文件所依赖的文件

命令一般为GCC命令、shell命令、链接命令、objcopy命令

3. makefile 的目标依赖
1°  makefile通过比较目标依赖文件和目标文件的更新时间,当依赖文件更新后,目标文件才会随着编译更新。
2°  目标依赖文件中的头文件更新不会被记录到,导致目标文件不会更新。这个问题可以通过 gcc-M hello.c 这个命令解决。

4. makefile 的自动变量

变量符号  含义
$@  目标
$^ 目标依赖
$< 目标依赖列表的第一个依赖
 $?  所有目标依赖中被修改的文件

5、wildcard、eval 和 call的作用

wildcard 用于匹配文件模式,返回匹配给定模式的文件列表。它通常用于自动识别一组具有相似名称的文件。

eval 用于执行一个或多个命令。它允许你在makefile中动态地构建和执行命令序列。

call 于执行另一个makefile目标或规则,并传递给它一组参数。call函数的使用可以帮助你组织和重用现有的规则,并使你的makefile更加模块化和可维护。

posted on 2022-04-17 18:40  轩邈、  阅读(181)  评论(0编辑  收藏  举报

导航