我正在寻找一个预定义的符号,用于编写如下代码:
{$IFDEF LAZARUS}
// code compiles by fpc/lazarus
{$ELSE}
// code compiles by delphi
{$ENDIF}
我正在寻找一个预定义的符号,用于编写如下代码:
{$IFDEF LAZARUS}
// code compiles by fpc/lazarus
{$ELSE}
// code compiles by delphi
{$ENDIF}
使用FPC
{$IFDEF FPC}
对于GUI应用程序,据我所知,“LCL”符号是在Lazarus项目中定义的。在这种情况下,这可能并不重要。
一般来说,对于更大的代码库,我会避免在源代码中有太多的ifdef FPC/LCL和ifdef。这使得添加异常或其他版本变得更加困难。
使用像JCL和Zeos(7)这样的系统,其中您为大多数差异命名一个自己的名称(例如“USE_FPCUNIT”或“USE_DUNIT”),并将这些链接到中央包含文件中的版本。
关于这个主题的简短论文,请参见http://www.stack.nl/~marcov/porting.pdf(第2章)
P.s. 我认为Pocketstudio、TP、GPC、VP和WDSybil(以及我忘记的任何东西)在大多数实际目的上都已经死亡了,而字节码变体Canterbury Pascal/Component Pascal/Oxygene/Prism/Delphi.NET不兼容(大多数都比Pascal更接近Oberon)。这基本上只剩下Delphi、Kylix和FPC需要担心了。