您的位置:首页 > 其它

makefile----学习笔记总结

2015-12-28 14:41 411 查看
什么是 makefile?

makefile是一套编译规则,关系到整个工程,方便于大型项目,makefile 带来的好处就是——“自动化编译”,固化了源代码之间的关系,只要写好,那么只需要一个 make 命令(调用make命令就会去找makefile文件进行编译),整个工程完全自动编译,极大的提高了软件开发的效率。

默认make命令的文件可以命名为:makefile Makefile GNUmakefile

若想任意命名时,加上make -f 任意命名的文件名

makefile文件的规则:

目标:依赖关系

命令

目标:一般就是make命令后面可以所跟的目标,eg make install ,目标就是install

依赖关系:就是实现目标必须先要完成的事情

命令:任意的shell命令,命令前可以加@表示不输出命令本身,默认或输出命令本身,且命令前必须是至少一个tab键

执行make 相当于执行makefile文件中的第一条规则,且在一个目录下执行make调用的是本目录的makefile文件,不同目录下make的内容不同

make决定编译的要素:时间,会比较二进制文件(执行文件)跟源代码文件的时间,如果源码时间新,则必须重新编译

内置变量:

$@:表示规则中的目标文件集。

$%:仅当目标是函数库文件中,表示规则中的目标成员名。

$<:依赖目标中的第一个目标名字。

$^:所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。

$+:这个变量很像"$^",也是所有依赖目标的集合。只是它不去除重复的依赖目标。

$?:所有比目标新的依赖目标的集合。以空格分隔。

一个简单的例子:



例子上shell表示的makefile中的一个内置函数,$()调用变量,.PHONY表示makefile中的伪目标。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: