1

在 x64 win7 上,我安装了 VS2008 和 x64 编译工具。我正在使用一个简单的“hello world”控制台程序对其进行测试。x86 和 x64 版本都编译得完美无缺。x86 版本的 Debug 和 Release 子版本都可以正常工作。发布的 x64 版本也可以正常工作。但是,Debug x64 版本总是引发并排错误。似乎找不到调试运行时。

有人建议安装 Debug runtime redist。这让我感到惊讶:x64 调试运行时是否应该已经与 VS2008 安装一起作为 x86 版本?

非常感谢!

@sj1900 “某些 x64 编译器组件在 VS 安装中是可选的。值得检查它们是否已全部安装。” 这是屏幕截图: VS2008 组件

我在这里没有看到任何进一步的选择。winSxS 中根本没有 amd64_microsoft.vc90.debugcrt。奇怪的问题。

4

2 回答 2

1

一些 x64 编译器组件在 VS 安装中是可选的。值得检查它们是否都已安装。

于 2012-11-04T08:32:26.960 回答
1

经过数小时的挠头和测试,我最终认为这是一个 VS2008 安装程序错误,并得到了几个在线参考的证实。

如果第一次安装 vs2008时没有x64 编译器工具,但后来通过安装程序的修改功能安装了 x64 工具,则会出现错误:所有 x64 调试运行时和 nodebug openMP 运行时都将丢失。重新安装不会解决此问题。

我尝试了许多互联网上建议的方法:安装所有修补程序、ATL 更新、更新到 SP1 或安装 VCredist ... 没有任何效果。

我发现有两种方法可以解决这个问题:

  1. 完全卸载 VS2008,然后使用选择的 x64 工具重新安装 VS2008。

  2. 这对于安装大量修补程序的人来说会很烦人。最直接的方法是构建一个安装程序来安装所有那些缺少的运行时create porject->other projects->setup project. 然后add&Merge Module-> 选择所有缺少的运行时Microsoft_VC90_OpenMP_x86_x64.msmMicrosoft_VC90_DebugOpenMP_x86_x64.msmMicrosoft_VC90_DebugCRT_x86_x64.msm. 构建并发布解决方案,运行安装程序,然后转到%windir%\winsxs,您应该会高兴地看到所有这些运行时文件夹。然后你就可以开始调试你的 x64 程序了。如果您使用的是 VS2008SP1,那么您可能会收到另一个关于运行时版本的错误。为避免这种情况,请在开始创建安装程序之前安装 SP1 的 ATL 更新。

PS:在 VS2008 中还有很多其他烦人但不是致命的错误,M$ 从来没有费心去修复。因此远离 VS2008 并尝试 VS2010,除非您的项目有特殊需要迫使您坚持使用 VC9。

于 2012-11-04T20:59:28.497 回答