【发布时间】:2019-02-17 17:31:05
【问题描述】:
有人可以告诉我是否有办法强制特定 Makefile 目标的顺序执行。例如,我有一个构建库和可执行文件的 Makefile。现在,可执行文件依赖于库,因此它们必须在库构建和暂存之后构建。这是我目前在单个 Makefile 中的内容:
.PHONY: all
all: all_lib all_bin
.PHONY: all_lib
all_lib: $(dep_lib)
.PHONY: all_bin
all_bin: $(dep_bin)
我有两个目标all_lib 和all_bin,一个构建所有库,另一个构建所有二进制可执行文件。当我通过-j make 运行并行作业时,我得到构建失败,因为所有目标并行运行并且二进制文件找不到共享库对象和暂存的头文件。
我尝试将其更改为此以尝试强制一些依赖顺序:
.PHONY: all
all: all_bin
.PHONY: all_lib
all_lib: $(dep_lib)
.PHONY: all_bin
all_bin: all_lib $(dep_bin)
但由于某种原因,所有目标仍然并行运行,我仍然遇到相同的构建失败。有什么想法吗?
【问题讨论】:
标签: makefile