Makefile 零基础学习笔记:制表符与空格不能随便替换

在编写Makefile和Shell脚本时,制表符和空格的使用至关重要。错误地将制表符替换为空格可能导致执行失败。Makefile中的构建目标必须使用制表符,而Shell脚本中空格的额外添加也可能引发错误。修复此类问题需要确保制表符正确使用,并避免多余的空格。注意这些细节对于脚本的正确运行至关重要。
摘要由CSDN通过智能技术生成

前言

  • 为了对齐方便,在C、C++等代码编写时,一般会设置【IDE】,把【制表符】统一替换为【空格】。如把一个TAB 制表符替换为 4个空格,这在源代码中是没有问题的
  • Makefile 与 Linux shell 脚本中,如果把 TAB 制表符替换为空格,就无法正确的执行,设置报错

示例

  • Makefile 简单的验证时,我直接在shell 中运行:vim,vim 中 制表符TAB就是TAB,空格就是空格,所以执行没有问题,也就是 make,发现按自己预想的方式执行
  • 复杂的Makefile,我使用VS Code,并且增加了几个构建目标,这里我发现TAB键看起来不舒服,就使用空格对齐,结果make时竟然无法执行了,排查发现就是大部分的shell命令,【制表符不能使用空格替换】,并且 shell变量的赋值时,尽量不能有【多余的空格】
  • 显然,空格替换TAB制表符、多余的空格,对Makefile、Shell脚本,带来巨大的风险,调试起来非常的不方便,尤其是IDE没有显示【空白符】时,看着【缩进】一样,但是有的能运行,有的不能正确运行,有的直接报错了

Makefile 中的制表符

  • Makefile 有构建目标:这个目标后面一般是 TAB键(制表符),强行替换为4个空格,看起来很舒服,但是make时,发现无法运行:

在这里插入图片描述

  • 修复方法:把Makefile 中应该为制表符(TAB键)的地方,改为TAB键,如果代码编辑器已经设置默认TAB使用空格替换,可以使用 shell 中的 vim来执行替换

在这里插入图片描述

小结

  • 注意在Makefile 编写或编辑时,注意:空格与制表符问题,不该使用空格替换时,不能替换
  • 另外shell 中空格尽量不要多加,如shell 变量的赋值时,有空格会造成异常
  • 脚本编写时,需要时刻注意细节
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangsz_sh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值