当前位置: 首页 > article >正文

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第十九章 Linux 工具之make 工具和 makefile 文件

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等


第十九章 Linux 工具之make 工具和 makefile 文件

本章内容对应视频讲解链接(在线观看):https://www.bilibili.com/video/BV1M7411m7wT?p=21

前面我们在编写linux上第一个程序hello world 的时候是直接使用 gcc 命令的。我们编译一个程序是非常的简单的,直接输入gcc 然后跟上程序的名称再跟上指定生成程序的名称,就可以很轻松的编译出hello这个可执行文件了。但是如果我们以后工作的时候要编译一个工程,这个工程里面有很多的源文件,这时候我们全部使用这个命令来编译那就非常的麻烦了,而且如果我们修改了一个源文件,那么我们使用命令来编译就要再次执行一遍这个过程,就会非常的耗时间。

如果有小伙伴以前学习过单片机,大家可以类比下单片机开发软件 keil里面的单独编译和全部编译。单独编译是很省时间的,全部编译就会非常的耗时间,我们使用命令来编译就相当于我们单片机软件中的全部编译。为了解决编译一个工程非常繁琐这个问题,前人就给我们发明了编译辅助工具 make 工具,它的编译思路是非常简单的,它会在编译之前先比较哪个文件的时间发生了改变,如果说这个文件它修改的时间要晚于编译生成的文件,那么它就会按照要求重新构建这些文件,而不是说再浪费时间重新构建其他的文件了。假如在单片机上用keil写了一个 c文件,这个工程里边别的文件没有改,那么我们就不用点全部编译,只要编译一下我们修改过的文件就可以了。make 也是这样的,只不过它比较聪明,它不用再人为的去判断了,在编译之前会自动帮我们判断。

19.1 什么是 make 工具?

make工具是编译辅助工具。解决使用命令编译工程非常繁琐的问题。

调用这个命令工具:我们在win上编程使用ide ,我们有图形界面,有相应的按钮,比如说build 或者run 来编译。其实make 这个编译辅助工具使用也是非常简单的,我们在控制台上直接输入命令,它就会自动调用make工具。

19.2 怎么调用make 工具?

直接在控制台输入 make 命令,就会调用 make 工具。

作者直接在这个目录下输入make ,然后报错了,因为我没有告诉make这个工具它按照什么规则来编译我们的程序。如图 19.2.1所示。

19.3 什么是makefile ?

Makefile 就是描述了整个工程编译连接等规则的文件。我们在终端输入完make命令之后,调用make工具,make就会在当前目录按照文件名就会找makefile 文件,Makefile 的命名必须是makefile 或 Makefile ,m大写小写都是可以的。

作者刚才输入命令报的这个错就找到原因了,是因为在当前目录下是没有 makefile 这个文件的,

作者这里新建一个 Makefile 文件,然后在当前目录下输入 make 命令,我输入完 make 命令,他就会调用 make 工具,make 工具就会在当前目录下找到 makefile 这个文件,这里又报错了,因为作者这里创建的makefile 文件,他虽然找到了但是里面是空的,因为没有包含任何的规则。如下图所示。

 

 

19.3 什么是makefile ?

Makefile 就是描述了整个工程编译连接等规则的文件。我们在终端输入完make命令之后,调用make工具,make就会在当前目录按照文件名就会找makefile 文件,Makefile 的命名必须是makefile 或 Makefile ,m大写小写都是可以的。

作者刚才输入命令报的这个错就找到原因了,是因为在当前目录下是没有 makefile 这个文件的,

作者这里新建一个 Makefile 文件,然后在当前目录下输入 make 命令,我输入完 make 命令,他就会调用 make 工具,make 工具就会在当前目录下找到 makefile 这个文件,这里又报错了,因为作者这里创建的makefile 文件,他虽然找到了但是里面是空的,因为没有包含任何的规则。如下图所示。

作者先给大家写一个简单的来试一下,打开 makefile 文件,敲的时候大家一定要按 Tab 首行缩进,不能用空格,然后我们输入内容,保存退出,如下图所示。

然后输入 make ,在当前这个目录下,我就成功的生成 hello 这个可执行文件,执行一下,可以看到成功输出了,到这里我们的编译流程就已经讲完了,我们也成功的利用makefile 文件和make工具,把hello.c 编译成了hello可执行文件。如下图所示。 

我们弄清楚了什么是make工具,怎么来调用make工具,makefile 又是什么,弄清楚了他们的关系后,后面我们再学习makefile语法和裸机编写makefile时,就非常的容易了。

 


http://www.kler.cn/news/341305.html

相关文章:

  • easyexcel多sheet导出(唯一能用)
  • PL/SQL
  • vue3实现登录获取token并自动刷新token进行JWT认证
  • 分治算法(7)_归并排序_计算右侧小于当前元素的个数
  • SpringBoot技术在服装生产管理中的实践
  • 【JDK17 | 1】Java 17 深入剖析:新特性与变革
  • 22-微服务项目部署
  • 芋道前端utils文件夹
  • package.json配置
  • Java后端面试题(day16)
  • 【万字长文】Word2Vec计算详解(二)Skip-gram模型
  • 第三方软件测评机构简析:软件安全测试报告的内容和作用
  • 第一弹:计算机网络概述与UDP通信
  • 强化学习笔记之【DDPG算法】
  • 初始化数据的正确方式?
  • 计算机毕业设计 基于Python音乐平台的设计与实现 Python毕业设计 Python毕业设计选题 Vue 前后端分离【附源码+安装调试】
  • B端系统推荐使用UI框架,但是核心页面还是要设计的
  • 搭建一个普通的网站需要多少费用?
  • 等保测评与ISO 27001:融合构建全面网络安全管理体系
  • jdk 11.0.8 配置 classpath