在Delphi的链接器选项卡(项目选项)中,有一个“映射文件”选项。我需要知道一种使用$IFOPT来检测编译时是否指定该选项以使某些代码被编译的方法。
{$IFOPT MapFileOption.....}
{$ENDIF}
无法使用$IFOPT
在代码中进行此测试。
这是因为映射文件的生成发生在编译后,它是一个链接时间步骤。因此,您可以将编译好的dcu文件链接到可执行文件中,在那个点上生成一个映射文件。您可以重复执行此操作,每次选择不同的映射文件选项,同时使用相同的dcu文件。因此,在编译时,不知道将使用哪个映射文件选项。
我想最容易理解的方法是考虑Delphi RTL中的代码。它以供应商编译的dcu文件的形式提供给您。您可以使用详细映射构建您的可执行文件,而我则不使用。但我们都使用了相同的RTL dcu文件。