delphi {$WARN DUPLICATE_CTOR_DTOR OFF}已从Dpk文件中删除

esbemjvw  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(103)

我需要关闭这个编译器警告,因为我不打算使我的库与C++兼容。
如果我将编译器指令放在生成警告的PAS文件中,它将被忽略。
强大的互联网上的人说{$WARN DUPLICATE_CTOR_DTOR OFF}应该放在DPR文件中。它工作。但是如果你放在DPK文件中,IDE会在我每次更改项目选项时删除它(我们都知道,在更改选项时,DPK文件会部分重建)。
问:如何使指令保留在DPK文件中?
若要重现它:

  • 启动 Delphi 10.4、
  • 启动一个新的 Delphi 包(文件主菜单)
  • 在{$IMPLICITBUILD ON}之后添加{$WARN DUPLICATE_CTOR_DTOR OFF}。
  • 现在打开“项目选项”,更改一些内容,然后关闭对话框。2指令将消失。
g6ll5ycj

g6ll5ycj1#

进入Project〉Options〉Building〉 Delphi Compiler〉Hints and Warnings,选择平台和配置,然后将该警告设置为False。保存。(根据您的Delphi版本,该设置的确切位置可能不同。)

zfciruhq

zfciruhq2#

在下面的DPR文件中,所有这些行在 Delphi 7中保持原样,即使IDE明智地保存/更改/添加了一些内容:

// My comment
{.$DEFINE MEMCHECK}
{$DEFINE BOMB}
// JCL_DEBUG_EXPERT_GENERATEJDBG ON
// JCL_DEBUG_EXPERT_INSERTJDBG ON
program pMain;

{$SetPEFlags $c20}
{.$define FullDebugMode}
{$I all.inc}

uses
  FastMM4,
  madExcept,

正如你所看到的,我设置了一些编译器指令,而其他的则被注解掉了(前导点使它只是一个Pascal注解)。注解和空行也保留了下来--没有任何东西被重写,尤其是指令。这就是为什么我要求你提供一个代码示例的原因:你可以在你的代码中使用一个位置而不是这些。2或者一个 Delphi 版本的不同行为。

即使IDE会从头开始重建您的DPR,您也应该能够在项目中先添加一个单元,并在其中放置您的编译器指令。编译器方面,这必须首先遇到。但我不知道您为什么不这样做,如果没有代码示例,您将永远不会有任何线索。

相关问题