在OSX上使用Windows OBJ文件

时间:2015-11-21 15:07:29

标签: macos delphi

我的Delphi应用程序的Windows版本使用ZipForge组件。通过几次更改,我能够为OSX编译它。问题是代码链接在c obj文件中,这些文件使用Delphi XE2编译为Windows的obj文件。我认为在OSX上运行时,它永远不会工作并立即崩溃我的应用程序,但这并没有发生。它能够在OSX上生成有效的zip文件。

{$L zlib32\deflate.obj}
function deflateInit_(var strm: TZStreamRec; level: Integer; version: PAnsiChar; 
  recsize: Integer): Integer; external; // this function is in the .obj files

我知道在OSX上我需要注意遵循堆栈对齐规则。但是我对obj文件知之甚少,以及当这些文件被链接时会发生什么。我是否幸运,OSX没有发现堆栈对齐或其他可能出错的情况,或Delphi XE5 for OSX确保在将obj文件链接到应用程序时,甚至在obj文件的代码中,堆栈对齐是否正确?

1 个答案:

答案 0 :(得分:0)

我现在用Delphi调试器检查了这个。在Windows .obj文件中链接时,只要调用非叶函数的函数,堆栈对齐就会出错。可能有一些情况并不重要,但大多数情况下会产生无法立即看到的问题。