大多数Linux应用程序都是使用以下命令编译的:
make
make install clean
据我所知,make
命令将构建目标的名称作为参数。例如,install
通常是将一些文件复制到标准位置的目标,而clean
是删除临时文件的目标。
但是,如果没有指定参数(例如,我示例中的第一个命令),make
将构建什么目标?
发布于 2010-01-13 23:19:01
默认情况下,它首先处理第一个不是以.
(也称为the default goal)开头的目标;为此,它可能必须处理其他目标-具体地说,就是第一个目标所依赖的目标。
GNU Make Manual涵盖了所有这些内容,并且是一个令人惊讶的简单和内容丰富的读物。
发布于 2015-05-12 03:52:12
为了节省其他人几秒钟的时间,并让他们不必阅读手册,这里有一个简短的答案。将此代码添加到make文件的顶部:
.DEFAULT_GOAL := mytarget
如果执行了"make“并且没有指定目标,那么mytarget现在将成为运行的目标。
如果你有一个旧版本的make (<= 3.80),这将无法工作。如果是这种情况,那么您可以执行anon提到的操作,只需将以下代码添加到make文件的顶部:
.PHONY: default
default: mytarget ;
参考资料:https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
发布于 2011-05-06 14:04:07
GNU Make还允许您使用一个名为.DEFAULT_GOAL
的特殊变量来指定默认的make目标。您甚至可以在Makefile中间取消设置此变量,从而使文件中的下一个目标成为默认目标。
https://stackoverflow.com/questions/2057689
复制相似问题