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

问题描述 投票:0回答:2

我需要关闭此编译器警告,因为我不打算使我的库与 C++ 兼容。

如果我将编译器指令放入生成警告的 PAS 文件中,它将被忽略。
如果您放入 DPK 文件,每次更改项目选项时 IDE 都会将其删除(我们都知道,更改选项时,DPK 文件会部分重建)。

问题:如何使指令保留在 DPK 文件中?

重现它:

  • 启动Delphi 10.4,
  • 启动一个新的Delphi包(文件主菜单)
  • 在 {$IMPLICITBUILD ON} 之后添加 {$WARN DUPLICATE_CTOR_DTOR OFF}。
  • 现在打开项目选项,更改某些内容并关闭对话框。该指令将会消失。
delphi compiler-warnings compiler-directives
2个回答
3
投票

转到项目>选项>构建>Delphi编译器>提示和警告,选择平台和配置,然后将该警告设置为

False
。并保存。 (根据您的 Delphi 版本,此设置的确切位置可能有所不同。) Screenshot of warning setting


0
投票

在下面的 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 注释)。注释和空行也保留 - 没有任何内容被重写,尤其是指令。这就是为什么我要求您提供代码示例:您可能会在代码中使用除这些之外的位置。或者行为不同的 Delphi 版本。

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

© www.soinside.com 2019 - 2024. All rights reserved.