如果没有指定目标,“让”应用程序如何知道要构建的默认目标?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

大多数的Linux应用程序都是用

make
make install clean

据我了解,make使用构建目标的名称作为参数。所以install是复制一些文件clean的目标,然后是删除临时文件的目标。

但是,make如果没有指定参数,将构建什么目标(例如,我的示例中的第一个命令)?

提问于
用户回答回答于

默认情况下,它首先处理不以'。'开头的第一个目标。又名默认目标 ; 要做到这一点,它可能需要处理其他目标 - 具体来说,第一个目标依赖于目标。在GNU使手册涵盖了所有这些东西,是一个非常容易和信息读取。

用户回答回答于

为了节省几秒钟的时间,并且让他们不必阅读手册,下面是简短的答案。将其添加到make文件的顶部:

.DEFAULT_GOAL := mytarget

如果执行“make”并且没有指定目标,mytarget现在将成为运行的目标。

如果你有一个旧版本的make(<= 3.80),这是行不通的。如果是这种情况,那么你可以做一些非提及的事情,只需将它添加到make文件的顶部即可:

.PHONY: default
default: mytarget ;

扫码关注云+社区