Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Delphi 2009升级到XE3的编译器内部错误_Delphi_Delphi Xe3 - Fatal编程技术网

从Delphi 2009升级到XE3的编译器内部错误

从Delphi 2009升级到XE3的编译器内部错误,delphi,delphi-xe3,Delphi,Delphi Xe3,使用delphi XE3编译一个相当大的项目(>750K行)(从2009年升级) 获取以下错误 [dcc32致命错误]MainForm.pas(3170):F2084内部错误:URW1147 与这个问题类似,但是代码中没有使用泛型 错误并不对应于一行代码,而只是文件的结尾 即在“结束”之后 在谷歌搜索之后,我也尝试了“代码内联控制”的所有设置,但没有乐趣 不确定从何处开始寻找,并希望得到任何有教育意义的反馈(甚至可能是一个粗略的猜测) 尚未提交质量控制报告,希望从这里得到有用的反馈 谢谢你,我

使用delphi XE3编译一个相当大的项目(>750K行)(从2009年升级)

获取以下错误

[dcc32致命错误]MainForm.pas(3170):F2084内部错误:URW1147

与这个问题类似,但是代码中没有使用泛型

错误并不对应于一行代码,而只是文件的结尾

即在“结束”之后

在谷歌搜索之后,我也尝试了“代码内联控制”的所有设置,但没有乐趣

不确定从何处开始寻找,并希望得到任何有教育意义的反馈(甚至可能是一个粗略的猜测)

尚未提交质量控制报告,希望从这里得到有用的反馈


谢谢你,我已经解决了这个问题,按照上面David的建议,将代码一次剥离一个部分

解决方案如下,以防这对任何人都有帮助

原来有一个“泛型”代码的“遗留”片段,它被认为在几年前被删除,并用更传统的技术替换

有一个未重构的局部变量,定义如下

var
  TestProc: TProc;
当按照以下方式分配时,会触发内部编译器错误(但不在有问题的代码行附近)

上面的数组元素TestProc属于object的过程类型

它在2009年下编译(并且工作得很好),这就是为什么它没有被更早地使用,但在XE3下会出现一个内部编译器错误


更正局部变量声明(到对象的过程)可以解决问题。

如果没有代码,绝对无法提供帮助。您需要将代码分解为一个小示例,该示例生成内部错误。不要担心让代码继续工作。只需删除代码,直到编译时没有内部错误。为了生成测试用例,它永远不需要实际运行和做任何有意义的事情。谢谢David,我的下一个方法是创建一个新项目并剥离。同时,我希望有人能有一个闪光的时刻。你把失败的来源公布到QC上了吗?
TestProc := TestSuite.TestProcs[i].TestProc;