makefile - 如何在 Makefile 目标中重复相同的先决条件?
问题描述
我想在Makefile中做这样的事情(有更多任务):
.PHONY: sep tasks task1 task2 task3
tasks: task1 sep task2 sep task3
task1:
@echo task 1
task2:
@echo task 2
task3:
@echo task 3
sep:
@echo
目标的结果tasks
是:
task 1
task 2
task 3
sep
目标仅在第一次执行。这是完全正常的。但我希望每次都执行。有没有办法强制重复?
一种解决方法是使用sep
如下几个目标:
tasks: task1 sep1 task2 sep2 task3
并且通过分组目标定义,所有目标都sep
可以一次性定义:
sep1 sep2 &:
@echo
结果是正确的:
task 1
task 2
task 3
我想知道是否有可能只有一个行为具有相同的行为sep
并强制重复此先决条件。
解决方案
这不可能。每次调用 make 都无法让 make 多次构建相同的目标。
无论如何,依赖这种顺序是错误的:如果您曾经想使用并行作业 ( make -j
) 来让您的构建运行得更快,那么这不会达到您想要的效果。
最好的办法就是简单地将“sep”放入目标的配方中:
task1:
@echo
@echo task 1
等等
推荐阅读
- php - 如何获取最深的 XML 元素
- javascript - Strapi - 如何同时上传文件和创建新模型条目?
- reactjs - 如何使用 React.js 更改列表的项目符号颜色?
- ruby-on-rails - Rails远程真实表单多次提交表单
- ios - 如何使用 SwiftUI 复制粗糙的笔记应用背景?
- php - ID3 标记同时实时合并 MP3,使用 PHP 和 HTTP 部分内容
- python - 如何从python类返回多个值到调用类
- python - 使用 ctypes 和 SetWindowLongPtr 更改 WinOS 窗口外观
- flutter - 如何从 Flutter 中的静态方法更新状态?
- microservices - API 网关应该通过队列还是直接与其他 μService 进行通信?