[RTOS 学习记录] 工程管理工具make及makefile

[RTOS 学习记录] 工程管理工具make及makefile

image-20240421150217202

这篇文章是我阅读《嵌入式实时操作系统μCOS-II原理及应用》后的读书笔记,记录目的是为了个人后续回顾复习使用。
前置内容:

开发工具 Borland C/C++ 3.1 精简版

1 make 工具

一个开发平台提供给我们,用于管理工程或项目的实用程序,它可以按照我们用户编写的makefile脚本文件对工程项目进行管理。

2 makefile 的内容结构

makefile是一个脚本文件,文件内容中有许多我们在命令行中常常用到的各种命令。

makefile程序段的格式如下:

程序段的标号(target): 关联程序段1的标号 关联程序段2的标号 ...
	命令集
关联程序段1的标号:
	命令集
关联程序段2的标号:
	命令集
...

注意:命令集中的所有命令行必须缩进一个tab键。

一个makefile文件有若干个程序段,程序段的开头必须有一个target进行标注,区分各个程序段。不同的程序段之间可以进行关联,此时在target后面以空格为界罗列相关联程序段的target。每个程序段有一组实现工程项目管理的命令集。

3 程序段标号的作用

标号可以看作是对应程序段的名称,我们可以在make命令的后面使用标号来指定需要执行的程序段。

3.1 makefile 示例代码

按照makefile的内容格式编写一个makefile脚本文件,命名为makefile(makefile的默认名称):

mkdir1:
    md dir1
mkdir2:
    md dir2
rmdir:
    rd dir1
    rd dir2

3.2 代码说明

上面编写的makefile文件中一共有3个程序段:mkdir1、mkdir2 和 rmdir。作用分别是:

  1. mkdir1——在当前目录下创建一个名为dir1的文件夹
  2. mkdir2——在当前目录下创建一个名为dir2的文件夹
  3. rmdir——删除前面两个步骤创建的两个文件夹dir1和dir2

3.3 第一次运行

在命令行窗口中使用 cd EXP2_3 进入此次示例makefile文件所在的目录中,输入 make 命令并且回车执行。可以看到,执行完成后在当前目录新建了一个名为dir1的文件夹,如下图所示:

image-20240421154600345

根据执行结果,我们知道了make执行了makefile中的第一个程序段mkdir1,其余两个程序段mkdir2rmdir都没有被执行。

3.4 第二次运行

输入命令 make mkdir2 并且回车执行,可以看到,执行完毕后当前目录下又新建了一个名为dir2的文件夹,如下图所示:

image-20240421155052461

3.5 第三次运行

输入命令 make rmdir 并且回车执行,可以看到,执行后dir1和dir2这两个文件夹都被删除了,如下图所示:

image-20240421155302943

3.6 结论

当使用 make 命令时,makefile的第一个程序段会被执行,即makefile的首段程序段是make.exe的默认执行程序段,makefile的其他程序段需要执行时必须在make命令后面显式地指定标号。

4 makefile 实现编译、链接工作

由于makefile的程序段中的命令集中可以使用一切命令行命令,所以我们可以把源文件的编译和链接工作步骤编写到makefile中,然后通过执行makefile脚本文件“自动的”完成编译、链接工作。

4.1 示例代码

一个具有3个源文件应用程序的示例如下:

头文件 printA.h

#ifndef _PRINTA_H_
#define _PRINTA_H_

extern const char *msgA;

#endif

源文件 printA.c

#
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值