linux makefile编写规则

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux makefile编写规则
(原创实用版)
目录
一、Makefile 简介
二、Makefile 的规则
1.目标文件
2.依赖文件
3.命令
三、Makefile 中的变量
1.通用变量
2.局部变量
四、Makefile 中的路径
1.源文件路径
2.目标文件路径
3.库文件路径
五、Makefile 编写实例
六、总结
正文
一、Makefile 简介
Makefile 是一个用于自动化构建和编译软件的脚本文件,通常在Linux 系统中使用。

它可以帮助开发者管理源代码,以及确定哪些文件需要编译,如何编译,以及编译后的文件如何链接。

通过编写 Makefile,开发者可以轻松地构建和维护复杂的软件项目。

Makefile 主要包括三类规则:目标文件、依赖文件和命令。

1.目标文件
目标文件是 Makefile 中要生成的文件,可以是对象文件、库文件或执行文件。

在 Makefile 中,目标文件通常以“target”关键字开头,后面跟要生成的文件名。

例如:“target = main.o”。

2.依赖文件
依赖文件是 Makefile 中要生成目标文件所需要的其他文件,通常是源代码文件。

在 Makefile 中,依赖文件通常以“prerequisites”关键
字开头,后面跟要依赖的文件名。

例如:“prerequisites = a.c b.c”。

3.命令
命令是用来生成目标文件的命令,通常是编译器或链接器。

在Makefile 中,命令通常以“command”关键字开头,后面跟要执行的命令。

例如:“command = gcc -o main.o a.c b.c”。

三、Makefile 中的变量
Makefile 中的变量可以用于存储常量值,以便在 Makefile 中多次
使用。

变量分为通用变量和局部变量。

1.通用变量
通用变量是在整个 Makefile 中都可以使用的变量。

通用变量通常在Makefile 的开头定义,使用“define”关键字。

例如:“define
INC_PATH./include”。

2.局部变量
局部变量是在某个规则中使用的变量,只在该规则的有效范围内有效。

局部变量通常在规则中使用“variable”关键字定义。

例如:“target = main.o”, “variable INC_PATH =./include”。

Makefile 中的路径包括源文件路径、目标文件路径和库文件路径。

1.源文件路径
源文件路径是 Makefile 中源代码文件所在的路径。

通常在“srcpath”变量中定义。

例如:“srcpath =./source”。

2.目标文件路径
目标文件路径是 Makefile 中要生成的目标文件所在的路径。

通常在“objpath”变量中定义。

例如:“objpath =./build”。

3.库文件路径
库文件路径是 Makefile 中库文件所在的路径。

通常在“libpath”
变量中定义。

例如:“libpath =./lib”。

五、Makefile 编写实例
以下是一个简单的 Makefile 编写实例:
```
# 定义通用变量
define INC_PATH./include
define LIB_PATH./lib
# 定义源文件路径
srcpath =./source
# 定义目标文件路径
objpath =./build
# 编写规则
target = main.o
prerequisites = a.c b.c
command = gcc -o main.o $(INC_PATH) $(LIB_PATH)
# 编写链接规则
target = main
prerequisites = main.o
command = gcc -o main $(LIB_PATH)
```
六、总结
Makefile 是 Linux 系统中用于自动化构建和编译软件的脚本文件。

通过编写 Makefile,开发者可以轻松地构建和维护复杂的软件项目。

Makefile 主要包括目标文件、依赖文件和命令等规则,以及变量和路径等概念。

相关文档
最新文档