Makefile:10分钟带你了解makefile

Makefile是Linux中用于自动化构建和编译程序的脚本文件,包含变量定义、规则和伪目标。它简化了调用程序、编译代码和故障定位的过程。通过定义规则和命令,程序员只需输入makerun等指令即可完成多步编译任务。make工具会根据Makefile执行指令,找不到命令时会报错并退出。
摘要由CSDN通过智能技术生成

1、Makefile是什么

在Linux系统中,Makefile是一个脚本文件,通常名为Makefile或者makefile,它使得程序员能够快速便捷地完成调用程序、编译代码、定位故障等工作。

Makefile是一个用于自动化构建和编译程序的脚本文件。它包含了程序的所有源文件、目标文件、编译器、链接器以及其他构建所需的指令和规则。官方标准文件为https://www.gnu.org/software/make/manual/make.html 。

Makefile通常包含了以下几个部分:

变量定义:Makefile中定义了一些变量,例如源文件、目标文件、编译器、链接器等。这些变量可以用来简化Makefile的编写和管理。

规则:Makefile中的规则指定了如何从源文件编译成目标文件的详细步骤,包括编译选项、链接选项等。这些规则通常使用条件语句、循环语句等高级语法来实现复杂的构建逻辑。

伪目标:伪目标是一个虚拟的目标文件,它并不实际存在于磁盘上,而是用来触发一系列指令执行的目标。Makefile中通常使用伪目标来管理构建的不同阶段,例如编译、链接、测试等。

自动变量:Makefile中使用的一些特殊变量,例如@、@、<、$@等,用于自动化构建过程中的一些操作。这些自动变量可以根据Makefile中的规则自动计算出相应的值,从而简化Makefile的编写和阅读。 在IC设计中,Makefile通常用于管理Verilog/VHDL/system verilog源代码文件,EDA工具的调用和运行。通过编写适当的Makefile规则,可以实现自动化构建、自动化测试等功能,提高IC设计的效率和可靠性。

为什么说Makefile使得程序员能够快速便捷地完成调用程序、编译代码、定位故障等工作呢?

以生活中的使用洗衣机脱水为例,需要进行如下步骤:

  1. 拿到衣服
  2. 打开洗衣机门
  3. 放入衣服
  4. 关闭洗衣机门
  5. 洗衣机跳转为脱水程序
  6. 点击开始键

在代码编译过程中,通常需要进行如下步骤:

1、找到代码文件

2、设置编译选项

3、设置输出文件名称和目录

4、开始运行编译工具

要完成如上的代码编译你需要输入很多指令,会觉得很费劲,还容易存在遗漏。使用Makefile可以将如上4个步骤指定为一个名为run的命令。在terminal中,只需要输入make run就可以完成代码编译的五个步骤了。

2、Makefile是如何识别命令的

我们以make vcs讲解。Makefile的执行离不开make,make 是linux系统自带的一个命令工具,用于解释 makefile 中的指令。

  1. 在terminal输入make vcs命令会使得make 会在当前目录下找名字叫“Makefile”或“makefile”的文件
  2. 如果在当前makefile中找到了执行对象vcs 则执行,如果没有找到则会在makefile include的文件中继续查找,直到所搜完所有的include文件。在找寻的过程中,如果出现错误,例如找不到执行的命令,那么make 就会直接退出,并报错

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值