本文共 1162 字,大约阅读时间需要 3 分钟。
前言:Makefile是一种常用于编译的脚本语言。它可以更好更方便的管理项目的代码编译,节省时间。 在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile 文件的编写。所要完成的Makefile 文件描述了整个工程的编译、连接等规则。
其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个正确的 Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
下面是Makefile的通用结构:
#以'#'开头的行表示注释#定义变量VAR,强制赋值为appVAR=test #在VAR之前定义的值后面再追加app这个值,这时该变量值扩展为testapp VAR+=app #如果之前VAR没有被定义,则定义并使用testapp;否则使用之前的值。VAR?=testapp # 第一条目标为总的目标,# 依赖可以是文件(目录)或为其他目标# 动作可以是Linux命令,动作的那一行必须以TAB键开头target: depend1 depend2 depend3 ... [TAB] action1 [TAB ] action2 target1: [TAB] action1 [TAB] action2
默认的情况下,make命令会在当前目录下按顺序找寻文件为“GNUmakefile”、“makefile”、“Makefile”的文件,找到后就解释并执行该文件,如果找不到就提示错误并退出。一般Makeifle文件名我们会用Makefile或makefile,而不会使用GNUmakefile。下面就用我最近学习写的一个简单的Makefile文件
从上面图片可以看出我需要编译很多个文件,而且命令十分的长,我每次修改代码后都需要重新编译执行,就很复杂麻烦。下面是Makefile的文件内容,真的简单到爆了,但是很实用,如果想了解更深,可以去看看大佬们的博客。 这里的all是整个Makefile文件的第一个目标,也就是总目标,当我们输入make命令时就是完成这个目标,该目标我定义了两个动作make clean和make run。 Makefile效果: 程序开始编译执行 删除执行文件 后序:Makefile只能介绍到这里,本人学到的有限。不过说实话Makefile真的很好用了。转载地址:http://kfhgn.baihongyu.com/