{$WARN DUPLICATE_CTOR_DTOR OFF} 从 Dpk 文件中删除
{$WARN DUPLICATE_CTOR_DTOR OFF} gets deleted from Dpk file
我需要关闭此编译器警告,因为我不打算让我的库与 C++ 兼容。
如果我将编译器指令放在生成警告的 PAS 文件中,它会被忽略。
强大的互联网上的人说 {$WARN DUPLICATE_CTOR_DTOR OFF} 应该放在 DPR 文件中。有用。但是如果你放入 DPK 文件,每次我更改项目选项时 IDE 都会删除它(我们都知道在更改选项时,DPK 文件会部分重建)。
问:如何让指令留在DPK文件中?
要复制它:
- 开始 Delphi 10.4,
- 开始一个新的 Delphi 包(文件主菜单)
- 在 {$IMPLICITBUILD ON} 之后添加 {$WARN DUPLICATE_CTOR_DTOR OFF}。
- 现在打开项目选项,更改一些内容并关闭对话框。该指令将消失。
转到项目>选项>构建>Delphi编译器>提示和警告,select平台和配置,然后将该警告设置为False
。并保存。 (根据您的 Delphi 版本,此设置的确切位置可能会有所不同。)
在下面的 DPR 文件中,所有这些行都保留在 Delphi 7 中的 as-is,即使 IDE 明智的事情是 saved/changed/added:
// 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,您应该能够向您的项目中添加一个单元,这是最先出现的,并且您可以将您的编译器指令。编译器明智的是,这必须首先遇到。但我不知道你为什么不这样做,如果没有你的代码示例,我永远不会有任何线索。
我需要关闭此编译器警告,因为我不打算让我的库与 C++ 兼容。
如果我将编译器指令放在生成警告的 PAS 文件中,它会被忽略。
强大的互联网上的人说 {$WARN DUPLICATE_CTOR_DTOR OFF} 应该放在 DPR 文件中。有用。但是如果你放入 DPK 文件,每次我更改项目选项时 IDE 都会删除它(我们都知道在更改选项时,DPK 文件会部分重建)。
问:如何让指令留在DPK文件中?
要复制它:
- 开始 Delphi 10.4,
- 开始一个新的 Delphi 包(文件主菜单)
- 在 {$IMPLICITBUILD ON} 之后添加 {$WARN DUPLICATE_CTOR_DTOR OFF}。
- 现在打开项目选项,更改一些内容并关闭对话框。该指令将消失。
转到项目>选项>构建>Delphi编译器>提示和警告,select平台和配置,然后将该警告设置为False
。并保存。 (根据您的 Delphi 版本,此设置的确切位置可能会有所不同。)
在下面的 DPR 文件中,所有这些行都保留在 Delphi 7 中的 as-is,即使 IDE 明智的事情是 saved/changed/added:
// 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,您应该能够向您的项目中添加一个单元,这是最先出现的,并且您可以将您的编译器指令。编译器明智的是,这必须首先遇到。但我不知道你为什么不这样做,如果没有你的代码示例,我永远不会有任何线索。