c – 为什么msbuild和link.exe在构建期间“挂起”?

我们有几个C解决方案,我们使用批处理文件运行一些构建脚本,这些批处理文件解决方案中的每个配置调用msbuild.exe.

这在3台开发人员机器和一台构建机器上运行良好,但其中一个项目在链接时开始挂起.这只发生在最新的四核机器上,我认为是2.8ghz.它在Windows Server 2003上运行,其他在XP或Vista上运行.

即使我更改bat文件中的构建顺序,也会始终如一地发生这种情况.

如果我从该计算机上的IDE运行构建它不会挂起.

关于可能导致这种情况的任何想法?

我正在使用Visual Studio 2008.

编辑:

我现在看到它挂起时运行如下:

> link.exe(2个实例)一个内存使用量大,内存使用量少的一个.
> vcbuild.exe
> msbuild.exe
> vcbuildhelper.exe
> mspdbsrv.exe

编辑:

exe文件存在,pdb文件也存在.

exe文件被某些进程锁定,我无法删除或移动它.我可以删除pdb文件.

如果我只使用VCBuild.exe,我也有问题.

我决定尝试调试2个link.exe进程和mspdbsrv.exe进程.

当我将调试器/ MSdev IDE连接到它们时,我得到一个消息框,说明应用程序已死锁和/或“所有线程已退出”.

我想我将不得不检查该机器上msdev安装的服务包.

编辑:

在debug.htm输出文件中,我在生成link.exe命令后得到各种东西输出.

但是,对于发行版buildlog.htm,linke.exe行是最后一行.

这显然是链接器的一个悬念.绝对是微软的错误.

我现在试图弄清楚.rsp(链接器响应)文件是什么.

当我发出:

link.exe @c:\\Release\RSP00000535202392.rsp /NOlogo /ERRORREPORT:QUEUE

这是发布版本日志中的最后一行.调试之后有更多的信息.

重新安装不同版本的Visual Studio并没有解决问题.

我将与微软公开一个问题/票.如果可以,我会发一个答案.

解决方法

整个程序优化(/ GL和/ LTCG)和/ MP不混合 – 链接器挂起.我在 Connect提出这个问题.

结果是它是VS2008中确认的错误;如果你想要一个修补程序,请联系PSS;并且修复程序包含在VS2010中.

如果您不能等待那么久,请关闭/ MP(编译速度较慢)或/ LTCG(代码较慢).

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...