小编use*_*888的帖子

在将GNU make用于存档文件的并行构建时,如何避免并发问题?

我正在使用GNU make构建一组静态库,使用隐式make规则来执行此操作.这些规则运行ar(1)命令来更新库/存档.分析表明,如果我在构建期间使用-j选项来运行并行作业,则构建时间会减少.

不幸的是,GNU make手册有一个 http://www.gnu.org/software/make/manual/html_node/Archive-Pitfalls.html,它几乎说make不提供运行ar(1)的并发保护,并且因此它可以(并且确实)破坏档案.该手册进一步说明这可能在将来修复.

对此的一个解决方案是使用http://code.google.com/p/ipcmd,它基本上在运行命令之前执行信号量锁定,从而序列化构建存档的ar(1)命令.这个特殊的解决方案对我不利,因为我在Windows上使用基于mingw的交叉编译工具.

这个问题有更简单或更好的解决方案吗?

gnu-make

11
推荐指数
1
解决办法
1447
查看次数

标签 统计

gnu-make ×1