一个Linux系统程序员不会使用GNU make来构建和管理自己的工程可是说是一个不合格的程序员。那么Makefile应该怎样去学习呢?下面良许教程网为大家分享一下Linux系统中Makefile的基础教程,有需要的朋友可以参考一下。
makefile简介:
-
Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。
-
其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。
-
编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。
1.makefile的命名(两种)
-
makefile
-
Makefile
2. makefile的规则
规则的三个要素:目标、依赖、命令
3. 多文件的makefile的编写(一个源文件只重新编译改变的文件)
-
makefile可以有多个规则,当第一个规则的的命令在执行的时候发现没有相应的依赖,就在下面的规则中找。最上面的规则的目标是终极目标一定写在最上面,也就是最后要生成的文件。
-
多文件Makefile的更新原理(基于时间)
4. makefile中的变量
-
自定义变量obj=main.o add.o sub.o引用的时候直接使用 $(obj)
-
自动变量()规则中的第一个依赖@:规则中的目标$^: 规则中所有的依赖
-
模式自动匹配 %子规则中:
:
-
makefile维护的变量(通常大写,自己可以修改)CC:cc(即gcc)APPFLAGS:预处理使用的选项CFLAGS:编译的时候使用的选项LDFLAGS:链接库使用的选项
5. makefile中的函数(都是有返回值)
-
wildcard 查找当前目录下所有.c文件,返回值给srcsrc=$(wildcard ./*.c)
-
patsubst 替换所有.c文件为.o文件obj=(src))
6. make clean
在makefile最后加入clean的目标,为了重新编译所有文件得删除原来生成的文件
7. 最终的简单的makefile
以上就是为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多等着你!