makefile(规则后面加分号)

在 Makefile 中,规则的基本结构是:

target: prerequisites
    commands

然而,如果你想在同一行中定义规则的目标和命令,可以使用分号 ; 来分隔命令和目标。也就是说,分号允许你在定义规则时将命令写在与目标和依赖项同一行,而不需要换行。

解释:

.f.o:;  ${FC} ${FCFLAGS} -c $*.f
  • .f.o: 是一个模式规则,表示从 .f 文件生成 .o 文件。
  • ; 是用于将规则的目标和命令写在同一行的分隔符。
  • ${FC} ${FCFLAGS} -c $*.f 是编译 .f 文件的命令,其中:
    • ${FC} 是 Fortran 编译器。
    • ${FCFLAGS} 是编译器的标志。
    • -c 表示只编译,不链接。
    • $*.f 代表模式匹配中 .f 文件的基名(不带后缀),例如,如果输入文件是 example.f,则 $* 代表 example,因此 $*.f 就是 example.f

为什么要加分号?

通常,在 Makefile 中的命令部分是写在目标和依赖项的下一行,并且使用 Tab 缩进来表示。例如:

.f.o:
    ${FC} ${FCFLAGS} -c $*.f

这种方式较为直观,但是在某些场景中,你可能希望简化写法,将规则和命令写在同一行,这时你就需要用分号 ; 来分隔目标(.f.o:)和命令(${FC} ${FCFLAGS} -c $*.f)。因此,分号的作用是:

  • 分隔目标和命令,允许你在同一行内定义目标的依赖和执行的命令。

使用场景:

  • 代码简洁性:在一些较小的 Makefile 中,使用分号可以减少行数,使 Makefile 看起来更加紧凑。
  • 单一命令的规则:如果某个规则只有一个简单的命令,可以考虑将它写在同一行,使用分号来分隔。

总结:

在规则中使用分号 ; 是为了在同一行内定义目标和命令。如果命令较少或者为了代码的简洁性,这种写法比较常见。不过,如果 Makefile 中命令较多、较复杂,还是推荐使用换行的形式来增强可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值