首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果没有指定目标,"make“应用程序如何知道要构建的默认目标?

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

Stack Overflow用户
提问于 2010-01-13 23:15:38
回答 4查看 156.3K关注 0票数 231

大多数Linux应用程序都是使用以下命令编译的:

代码语言:javascript
复制
make
make install clean

据我所知,make命令将构建目标的名称作为参数。例如,install通常是将一些文件复制到标准位置的目标,而clean是删除临时文件的目标。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-13 23:19:01

默认情况下,它首先处理第一个不是以. (也称为the default goal)开头的目标;为此,它可能必须处理其他目标-具体地说,就是第一个目标所依赖的目标。

GNU Make Manual涵盖了所有这些内容,并且是一个令人惊讶的简单和内容丰富的读物。

票数 275
EN

Stack Overflow用户

发布于 2015-05-12 03:52:12

为了节省其他人几秒钟的时间,并让他们不必阅读手册,这里有一个简短的答案。将此代码添加到make文件的顶部:

代码语言:javascript
复制
.DEFAULT_GOAL := mytarget

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

如果你有一个旧版本的make (<= 3.80),这将无法工作。如果是这种情况,那么您可以执行anon提到的操作,只需将以下代码添加到make文件的顶部:

代码语言:javascript
复制
.PHONY: default
default: mytarget ;

参考资料:https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html

票数 231
EN

Stack Overflow用户

发布于 2011-05-06 14:04:07

GNU Make还允许您使用一个名为.DEFAULT_GOAL的特殊变量来指定默认的make目标。您甚至可以在Makefile中间取消设置此变量,从而使文件中的下一个目标成为默认目标。

参考:The Gnu Make manual - Special Variables

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2057689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档