在哪里'所有'属于Makefile?

时间:2012-06-27 18:27:58

标签: c gcc makefile

我们将所有内容放在Makefile中?

我找到了类似的问题earlier,但我需要更多细节。我也查看了GNU make manual,但在文档中迷失了方向。我试过谷歌,但没有找到一个很好的例子。所以,我做了我最后的手段,并试图通过自己黑客攻击Makefile来解决这个问题。我有:

CC=gcc
CFLAGS=-Wall -g

clean: 
rm -f all: ex1

这不会在C中编译我的ex1。另外,如果我想在此make文件中添加更多内容。像ex1,ex2一样,运动一切。我会把所有内容放在顶部并重复

rm - f whatever

以下线清洁?

感谢您的帮助和帮助。耐心也很感激。

1 个答案:

答案 0 :(得分:3)

all实际上并不特别,只是常用的目标名称。为了使其最佳工作,它应该是文件中的第一个目标。这使其成为默认目标,gmakegmake all的工作方式相同。

通常,all目标具有依赖关系,这是需要构建的事物。 E.g。

all: myexe

rmclean目标相关(也没什么特别的,只是常用名称)。你这样定义:

clean:
    rm -f myexe

这使得在myexe运行时删除gmake clean。如果makefile构建了其他文件,那么它们也应该列在那里。

有关makefile的更多信息。通常您会使用变量和模板规则,这有助于您避免重复自己。但这不仅仅是一个简单的答案可以描述的。