makefile:如何在宏中调用宏

发布于 2024-08-31 08:26:46 字数 239 浏览 1 评论 0原文

我的 make 文件中有以下宏:


pdf: // 做一些

干净的事情: // 只是另一个奇特的东西


不,我想声明一个宏 all: 其中包含(或调用)上面的宏。以下内容不起作用:


全部: pdf: clean:


我不想重复 pdf: 和 clean: 中的代码,以免违背 DRY 原则。

感谢您的帮助。

I have the following macros in my make file:


pdf:
// do something

clean:
// just another fancy thing


No I want to declare a macro all: which include (or call) the macros above. The following thing doesn't work:


all:
pdf:
clean:


I don't want to repeat the code from pdf: and clean: in order not to rebel against DRY principle.

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

没企图 2024-09-07 08:26:46

这些不是宏,它们是目标。

Makefile 采用 [target] 语法:[dependent target 1] [dependent target 2]

尝试:

all: pdf clean

Those are not macros, they are targets.

Makefiles take the syntax of [target]: [dependent target 1] [dependent target 2]

Try:

all: pdf clean
亚希 2024-09-07 08:26:46

不带参数执行 make 是
与调用 make all 相同。

这是不正确的。文件中的第一个普通目标是默认目标。 all 并没有什么神奇之处,尽管按照惯例将其用作第一个目标。

executing make without argument is
same as calling make all.

That's not correct. The first normal target in the file is the default target. There's nothing magical about all, though it is conventional to use that as the first target.

我很坚强 2024-09-07 08:26:46

您还可以运行:

make clean pdf

无论如何,all 通常用作默认 make 目标 - 换句话说,执行不带参数的 make 与调用 make all 相同。对于有经验的用户来说,这可能非常令人困惑,因此如果您想要“这样的快捷方式”,请尊重地称呼它(例如cpdf

You also can run:

make clean pdf

Any way, all is commonly used as a default make target - in other words executing make without argument is same as calling make all. This maybe very confusing for expirienced users, therefore if you want "such a shortcut", call it deferently (e.g. cpdf)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文