我的第一个问题(耶!)是关于gnumake和并行构建的。这是一个快速示例文件:
.PHONY: tool_1 tool_2 tool_3 tool_4 all tools
all: | tools
tools: | tool_2 tool_3 tool_4
tool_1:
# commands for tool 1
tool_2: | tool_1
# commands for tool 2
tool_3: | tool_1
# commands for tool 3
tool_4: | tool_1
# commands for tool 4
如果我对这个人做make -j
,那么我在这里是正确的,以确保tool_1
的命令只执行一次,并且在make
尝试构建任何{{}}之前{1}}?
我正在寻找的是让tool_[234]
首先构建make -j
,然后tool_1
并行构建,但不执行{{1}的命令三次。我希望这是有道理的。感谢您的任何建议或想法!
答案 0 :(得分:8)
make -j
的行为与您在问题中的预期完全一致。它不会多次依赖。
管道(|
)字符在依赖项列表中的作用是什么?