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

Posted

技术标签:

【中文标题】cl.exe 不会在第二个子进程中编译【英文标题】:cl.exe won't compile in second child process 【发布时间】:2016-06-20 14:27:58 【问题描述】:

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

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

是否知道 cl.exe 不能运行两个实例?我假设按顺序运行它会解决这个问题。

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

【问题讨论】:

【参考方案1】:

cl.exe 在多个进程中运行良好。不过,一些标志可能会改变这一点。在我的例子中,/Zi 生成了一个程序数据库文件,不能被多个 cl.exe 访问。

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

【讨论】:

以上是关于cl.exe 不会在第二个子进程中编译的主要内容,如果未能解决你的问题,请参考以下文章

linux中用管道实现兄弟进程通信

实践作业之编译安装LAMP

多个子进程中的 Pyhtion 2.7 记录器不会将信息记录到日志文件中

多进程和多线程

编写多进程编程

无法在 Rust 中两次读取子标准错误