【问题标题】:fatal error C1001: An internal error (compiler file 'msc1.cpp', line 1518) with vs2017 15.8.4致命错误 C1001:vs2017 15.8.4 的内部错误(编译器文件“msc1.cpp”,第 1518 行)
【发布时间】:2019-02-24 09:14:15
【问题描述】:

当我使用 VS2017 15.8.4 和 Fastbuild 0.96 为 Unreal Engine 4.2 进行分布式构建时,出现以下错误:

4>c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.15.26726\include\comdef.h : 致命错误 C1001: 编译器出现内部错误. 4>(编译器文件'msc1.cpp',第1518行) 4> 要解决此问题,请尝试在上面列出的位置附近简化或更改程序。 4>请选择Visual C++上的技术支持命令 4> 帮助菜单,或打开技术支持帮助文件了解更多信息

我发现这个问题是由最新的 Visual Studio 分布式构建引入的,因为: 1. VS2017 15.7.6 没有出现这个问题,这是一个旧版本 2.禁用分布式构建时没有问题

我在visual studio forum 中发现了同样的问题,但看起来他们没有为 VS2017 15.8.4 提供解决方案。 VS2017 15.8.4有解决方案吗?

【问题讨论】:

  • 您的帖子中没有问题。您对我们有什么期待?链接文档中给出的建议是升级到 16.0,或者您可以降级到 15.7.6。为什么你不能接受?
  • 自 1995 年以来,我已经在 MS 编译器中看到了这些。你没有发现任何令人震惊的东西。 MS 变得更好了,但偶尔你仍然会编写一个难倒编译器的代码。我见过几次 GCC 等价物,但是是的 - 不是那么频繁。
  • @C.M.但在这里,它的 MS 代码阻碍了它自己的编译器。
  • @john 是的。您可能在编译器作者没有预见到的一些意想不到的上下文中提到了它。或者也许某处的东西溢出了......
  • 分布式构建可以使用预编译的头文件等来玩弄技巧——这会对编译器造成负担。我建议尝试找出正常构建时的翻译单元(编译器观察到的)与 fastbuild build 之间的区别

标签: c++ visual-studio-2017 unreal-engine4


【解决方案1】:

只是一个记录。在问题模块上添加 .AllowDistribution = false 和 .AllowCaching = fasle (这意味着禁用问题模块上的分发和缓存)后,问题得到解决。现在我可以使用 FASTBuild 在 VS2017 15.8.4 和 VS2017 15.8.5 中构建 UE 4.2。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多