我的32位Delphi 2010应用程序使用$LINK编译器指令链接到多个C对象文件.我可以在Delphi XE2中做到这一点吗?
我正在使用bcc32版本5.5进行编译,但是如果Embarcadero C编译器尚未输出64位对象,我不介意使用哪个编译器.
解决方法
是.您必须将“C”对象文件编译为COFF格式.这通常意味着英特尔和/或MSVC编译器.同样的注意事项适用于适用于32位的64位对象文件链接.您必须确保所有外部引用已正确解析,方法是提供另一个具有该符号的.obj,或从Delphi代码.构建“C”代码时,请确保禁用任何堆栈检查或其他运行时验证码生成.很多时候,这样的代码依赖于给定工具的特定版本的C/C++ RTL.
其他值得注意的是,虽然Delphi 64位可以链接到COFF对象文件(最终还将支持ELF64),32位Delphi支持与C Builder建立的OMF对象文件的链接,而新的XE2,32位COFF对象文件可以使用MSVC.同样的注意事项也适用.