微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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(代码较慢).

原文地址:https://www.jb51.cc/c/119440.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐