哪个 Delphi 版本支持哪种目标文件格式?

Which Delphi Version supports which object file format?

我正在搜索每个 delphi 版本支持的目标文件格式列表。目标文件应链接为:{$L lib/object.o}.

原因是我维护的项目在 Delphi7 中出现链接器错误。该错误不会发生在编译器 >XE3 中。我只有XE3及以上可以测试

是否有人维护了一个列表或知道对一个列表的引用,我可以在其中找到有关受支持格式的信息and/or随着新版本的变化,可能还有目标文件的问题等?

我想帮助该项目的用户解决这个问题 (lz4-delphi issue)。

XE2 带来了变化,增加了对 COFF 对象格式的支持。之前的版本只支持 OMF 对象。

添加对 COFF 支持的更改是由 XE2 中引入的新 64 位编译器驱动的。 Embarcadero 当时没有 64 位 C++ 编译器,因此需要 link 由另一个编译器生成的对象。他们选择使用发出 COFF 对象的 MS 编译器。

Allen Bauer's answer 我问的问题包含更多详细信息。

实际上,这意味着对于 Delphi 7,您需要使用 bcc32 编译源代码。或者用其他编译器编译 C 代码,然后 link 到 DLL。

为了将来参考,Delphi10.1 Berlin 和 10.2 Tokyo 都支持 ELF64 格式,也支持 COFF。