首页 > 其他分享 >Makefile中空格与tab

Makefile中空格与tab

时间:2023-11-26 21:25:13浏览次数:28  
标签:语法 shell TAB makefile Makefile recipe 空格 tab

空格与tab

makefile实际上是在一个文件中用两种完全不同的“语言”编写的。

  • recipe(运行编译器,echo等的命令)是用shell脚本语法编写的。

  • 不在recipe中的其余makefile是用makefile语法编写的。

为了使make能够区分recipe和不是recipe的东西,它使用了TAB字符。因此,

以TAB开头的行被假定为recipe的一部分,因此它们是shell脚本并传递给shell进行解析。

以空格开头的行不能成为recipe的一部分,它们必须是makefile语法,用空格。

ifneq是makefile语法:它不能成为recipe的一部分,并且以空格开头。

结论:

1、在写makefile语法,非recipe的时候,缩进应该使用空格。

2、在写shell语法,recipe时,缩进使用TAB。因为实际上我们写的是希望shell执行的语句,所以使用的是shell syntax。而make识别recipe的方式就是。

如果makefile中两者混用,会导致报错:
*** recipe commences before first target. Stop.

排除方法

使用vim打开文件

:set list //显示不可见字符
:set nolist //隐藏不可见字符

现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里。

:set listchars=tab:>-,trail:-

TAB会被显示成 ">—" 而行尾多余的空白字符显示成 "-"

1701004495345.png

标签:语法,shell,TAB,makefile,Makefile,recipe,空格,tab
From: https://www.cnblogs.com/stayuplater/p/17857974.html

相关文章

  • 04-表格 table(会使用)
    typora-copy-images-to:media第01阶段.前端基础.表格HTML第二天目标能够利用表格、列表和表单完成注册页面的综合案例能出说表格用来做什么的能说出列表用来做什么的能说出表单用来做什么的为了让我们页面显示的更加整齐,我们需要学习三个表(表格、表单、列表)表格t......
  • StableDiffusion笔记
    title:StableDiffusion笔记banner_img:https://drive.studyinglover.com/api/raw/?path=/photos/blog/background/1679396994125.pngdate:2023-5-2915:36:00categories:-笔记tags:-文字生成图片StableDiffusion是一个图像生成方法,由 StabilityAI and Runway......
  • 第八章iptables防火墙
    安装iptables服务保存不上,可能没安装iptables服务yuminstalliptables-services.x86_64关闭防火墙systemctlstopfirewalldsystemctlmaskfirewalld2安装iptables服务yuminstalliptables-services3设置iptables服务开机启动systemctlenableiptables4重启iptab......
  • 关于u-table 和el-table的问题相关
    解决方式:        在u-table中引入el-table中的el-table-column,修改el-table-column为u-table-column页面报错: vue.runtime.esm.js:619[Vuewarn]:Duplicatekeysdetected:'el-table_1_column_1'.Thismaycauseanupdateerror.foundin---><ElTableHead......
  • 接收用户输入一行字符,分别统计出其中数字、英文字母、空格和其它字符的个数。
    packagework;importjava.util.Scanner;publicclassWork61{ publicstaticvoidmain(String[]args){ inta=0;//定义数字的个数 intb=0;//定义英文字母的个数 intc=0;//定义空格的个数 intd=0;//定义特殊符......
  • Centos7 系统 /etc/fstab配置文件中文件系统类型错误导致进入紧急模式如何解决
    在格式化分区是我选择的ext4文件格式对分区sdc2进行了格式化,但是在写入配置文件是选择的文件格式是xfs,这导致了我的虚拟机进入系统时直接进入了紧急模式输入root密码进行维护,可以发现出现了命令窗,由于知道错误原因,所以可以直接从根源入手打开配置文件vim/etc/fstab我对设备......
  • 新火种AI | Stable Video Diffusion来了!普通人拍大片指日可待
    作者:小岩随着技术的不断进步,AI领域取得了巨大的突破。特别是在图片生成这个赛道,AI目前能做到的成绩超乎想象。或许就在1年以前,很多人,特别是一些专业从业者对AI绘画的印象还停留在“元素要靠东拼西凑”“废图率太高”“成品无法直接使用”等方面,但如今,高质量AI绘图软件的表现完全可......
  • Docker启动失败,提示"iptables: No chain/target/match by that name"
    一、问题现象docker容器报错:docker:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointetlmysql(12ccdbcef942bef6f32dbfc157dd1b49319ee2df4d68bf7b9a9b9ea88b5bd4fa):(iptablesfailed:iptables--wait-tnat-ADOCKER-ptc......
  • el-table 字段自定义排序
    我在element-ui中使用el-table排序,默认开启就是el-table-column上加个sortable即可,但是后端返回的数据中含有中文列如tableData中有个字段count对应值是类似 13,6,2,3,4,5,10以上,7,含有中文‘以上’两个字,这个时候自带的排序已经无法满足我的要求,所以需要增加该列的自定义排......
  • Constructors in '@immutable' classes should be declared as 'const'.
    警告信息Flutter开发遇到如下警告Constructorsin'@immutable'classesshouldbedeclaredas'const'.报错代码classTaskWidgetextendsStatefulWidget{finalStringtitle;finalboolisChecked;finalintorder;TaskWidget({requiredthis.......