cl.exe 不会在第二个子进程中编译

cl.exe won't compile in second child process

我正在尝试在我从 Node.js' child_process 模块和 .spawn() 并行创建的两个子进程中编译两个文件,基本上循环遍历源并立即生成两个 shell。

但是只会编译一个文件,而且并不总是相同的。 一个 child_process 将 return,错误代码为 2。

难道cl.exe不能运行两次吗?我假设按顺序 运行 将解决此问题。

注意:设置或取消设置 /MP 标志不会改变此行为。

cl.exe 在多进程中运行正常。不过,有些标志可能会改变这一点。在我的例子中,/Zi 生成了一个不能被多个 cl.exe.

访问的程序数据库文件

解决方案是要么设置 /Fs,强制同时写入,要么不设置 /Zi,然后我就这样做了。