【发布时间】:2020-05-04 08:51:35
【问题描述】:
在创建二进制文件engine 时,会创建一些目标文件a.o 和b.o。
生成文件
.PHONY all
all: engine cars
现在第二个二进制文件cars 需要在创建二进制文件engine 时创建.o 文件a.o 和b.o
这里的问题是我使用make -j 进行编译,在某些情况下会导致未创建目标文件并因此出现undefined reference 错误。 make -j 5 未发现此问题。
有没有办法让它与make -j并行运行
【问题讨论】:
-
“某些情况”?这是否意味着它是随机发生的?
-
你为什么用 CMake 标记这个问题?
-
@MichaelChourdakis 以上
make -j 5的任何东西现在都失败了,所以我会说它是 100% 可重现的,这意味着当它使用多个内核运行时,目标文件不会在那时创建 -
那么似乎是 gcc 错误? -j 2 也一样?
-
请显示完整的makefile。我的猜测是您没有正确指定目标
cars对.o文件的依赖关系。
标签: c++ makefile object-files