缺少@InitializeRecord

时间:2012-09-11 07:32:39

标签: delphi-7 pascal delphi

我正在开发一个带有简约system.pas /sysinit.pas的delphi 7项目 当我尝试在我的项目中使用记录时,我的编译器会出现此错误:

System unit out of date or corrupted: missing '@InitializeRecord'

因为我试图用纯pascal编程/没有RTL有没有办法手动启用/调用记录的初始化?!

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

Delphi编译器依赖于某些“内部函数”,这些函数由生成的代码调用。

例如,当您在代码中定义record时,即使您不使用任何RTL,Delphi编译器也会生成对InitializeRecord的调用。这与string和动态数组处理相同。

因此,您将无法绕过并忽略这些函数,因为它们应该由编译器本身存在。

Delphi并不意味着剥离低级RTL单元。在某些情况下我已经这样做了:

向下剥离系统单元时,

FreePascal 要好得多。由于它的目标是embedded systems,因此您可以选择删除字符串支持,FPU甚至整个堆处理。