大多数linux应用程序都使用以
make
make install clean
Run Code Online (Sandbox Code Playgroud)
据我所知,make将构建目标的名称作为参数.所以install是一个目标是复制一些文件,之后clean是一个目标即删除临时文件.
但是make如果没有指定参数,会构建什么目标(例如我的例子中的第一个命令)?
Sam*_*uel 156
为了节省其他人几秒钟,并保存他们不必阅读手册,这里是简短的答案.将其添加到make文件的顶部:
.DEFAULT_GOAL := mytarget
Run Code Online (Sandbox Code Playgroud)
如果执行"make"并且未指定目标,则mytarget现在将成为运行的目标.
如果你有一个旧版本的make(<= 3.80),这将无效.如果是这种情况,那么您可以执行anon提到的操作,只需将其添加到make文件的顶部:
.PHONY: default
default: mytarget ;
Run Code Online (Sandbox Code Playgroud)
参考文献:https: //www.gnu.org/software/make/manual/html_node/How-Make-Works.html
San*_*rya 32
GNU Make还允许您使用名为.DEFAULT_GOAL的特殊变量指定默认的make目标.您甚至可以在makefile的中间取消设置此变量,从而使文件中的下一个目标成为默认目标.
非常有趣,但深奥的东西.但我同意那里的东西 - gnu make手册非常易读.你可能认为你不需要知道其中的大部分东西,但是一旦你看到一个非常全面的东西,你会非常感谢你能用它做的一些非常奇特的东西 - 字符串操作,文件/目录函数,等等