【问题标题】:Why Unity stops the compilation after some errors?为什么 Unity 在出现一些错误后停止编译?
【发布时间】:2013-12-11 02:39:28
【问题描述】:

如果您的代码有很多错误,Unity 将尝试编译并显示一些错误消息。您修复了这些错误,它会重试并显示更多错误。

在出现一些错误后它会停止编译,所以知道你有多少错误的唯一方法就是修复它们。

有没有办法告诉编译器不要停止编译?

我正在做一个项目,我必须评估使用另一个目标平台的努力,所以当我尝试在新平台上编译时显示所有编译错误会有所帮助。

【问题讨论】:

  • 我不确定是否继续编译,但我认为编译错误的数量并不是衡量所需工作量的好方法。仅仅因为您遇到 300 个错误并不意味着您必须修复 300 个问题,也不能说明这些错误的严重性。
  • 呃,你想让你的编译器做什么?如果出现错误,它应该自动检测问题所在,以便程序的其余部分可以理解并被编译?如果您错过了一个括号,那么显示以下 50k 错误是没有意义的,因为所有内容都被错误地解释了,并且会使修复真正的问题变得非常危险。
  • @SimonTrewhella 我知道,它只会向我展示我必须处理的类文件,我可以快速浏览一下并感受即将发生的事情。
  • @Pierre-LucPineault 好吧,现在编译器更智能了,所以我认为他们可以做得更好。例如,如果您使用 java 编程并使用良好的 IDE,它将显示丢失的括号错误以及该文件中的任何后续错误,而不会错误地解释丢失的括号之后的所有内容。
  • @Pierre Java 不被解释,它像 C# 一样在虚拟机中编译和运行

标签: c# compilation unity3d


【解决方案1】:

直接回答您 - 虽然您可以提供自定义预处理器指令as documented here,但没有办法告诉 Unity3D 编译器在遇到严重错误时继续编译。

【讨论】:

  • 其实Unity中有一种设置编译标志的方法,例如如果你想使用-unsafe标志你可以添加一个带有@的Assets/smcs.rsp文件987654323@在里面。
  • 太酷了。我不知道。我已修改我的答案以包含您的信息。
  • 你知道我在哪里可以找到更多关于 C# 编译器在出错时停止的信息吗?我什么也找不到。我问这个是因为,在我看来,Unity 在出现一些错误后会停止编译,即使它们并不重要。例如,删除许多文件中的命名空间包含,它会在一些错误后停止编译。这不是一个严重错误,否则它会在第一次缺少命名空间引用时停止。
  • Unity3D 使用 C# Mono 来编译,所以也许 google 一下。
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2018-07-11
  • 1970-01-01
  • 2014-10-11
  • 2013-08-14
  • 2019-02-09
相关资源
最近更新 更多