栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Makefile详解

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Makefile详解

Makefile
  • Makefile
  • make工具规则
  • Makefile语法
    • TARGET
    • PREREQUISITES
    • COMMAND
  • makefile编写

Makefile

Linux下使用GNU make来构建和管理代码工程。

源码包的安装中经常会使用。

Makefile文件:描述了整个工程的编译、链接、安装等规则。
包括:

①:工程中的哪些源文件需要编译以及如何编译。
②:需要创建那些库文件以及如何创建这些库文件。
③:如何最后产生我们想要得可执行文件。

好处:使用一行命令来完成“自动化编译”,极大提高了效率。

make工具规则

当使用make工具进行编译时,工程中以下几种文件在执行make时将会被编译(重新编译):
1.所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;
2.每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;
3.头文件在上一次执行make之后被修改。则所有包含此头文件的C源文件在本次执行make时将会被重新编译。

Makefile语法

一个简单的Makefile描述规则组成:

TARGET... : PREREQUISITES...
	COMMAND
...
TARGET

TARGET:规则的目标。
通常是最后需要生成的文件名或者为了实现这个目的而必需的中间过程文件名。
可以是.o文件,也可以是最后的可执行程序的文件名等。
另外,目标也可以是一个make执行的动作的名称,如目标“clean”,我们称这样的目标是“伪目标”。

PREREQUISITES

PREREQUISITES:规则的依赖。
生成规则目标所需要的文件名列表。通常一个目标依赖于一个或者多个文件。

COMMAND

COMMAND:规则的命令行。
是规则所要执行的动作(任意的shell命令或者是可在shell下执行的程序)。它限定了make执行这条规则时所需要的动作。

一个规则可以有多个命令行,每一条命令占一行。
注意:
每一个命令行必须以[Tab]字符开始,[Tab]字符告诉make此行是一个命令行。
make按照命令完成相应的动作。这也是书写Makefile中容易产生,而且比较隐蔽的错误。

makefile编写

最简单的makefile文件可以命名为 makefile 或 Makefile。
注意:不可以用 makeFile。

创建 main.c 文件

#include 
#include "print.h"

int main()
{
	hello();
	return 0;
}

创建 print.c 文件

#include "print.h"

void hello(void)
{
	puts("hello world C++n");
}

创建 print.h 文件

void hello(void);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号