我正在开发一个带有简约system.pas /sysinit.pas的delphi 7项目 当我尝试在我的项目中使用记录时,我的编译器会出现此错误:
System unit out of date or corrupted: missing '@InitializeRecord'
因为我试图用纯pascal编程/没有RTL有没有办法手动启用/调用记录的初始化?!
感谢您的帮助。
答案 0 :(得分:3)
Delphi编译器依赖于某些“内部函数”,这些函数由生成的代码调用。
例如,当您在代码中定义record
时,即使您不使用任何RTL,Delphi编译器也会生成对InitializeRecord
的调用。这与string
和动态数组处理相同。
因此,您将无法绕过并忽略这些函数,因为它们应该由编译器本身存在。
Delphi并不意味着剥离低级RTL单元。在某些情况下我已经这样做了:
FreePascal 要好得多。由于它的目标是embedded systems,因此您可以选择删除字符串支持,FPU甚至整个堆处理。