我需要關閉這個編譯器警告,因為我不打算讓我的庫與 C 兼容。
如果我將編譯器指令放在生成警告的 PAS 檔案中,它將被忽略。
強大的互聯網上的人說 {$WARN DUPLICATE_CTOR_DTOR OFF} 應該放在 DPR 檔案中。但是,如果我把它放在那里,IDE 會在我每次更改專案選項時將其洗掉(我們都知道,在更改選項時,DPR 檔案會部分重建)。
更新:對不起。我的錯!它只發生在 DPK 檔案中。我的印象是該錯誤也出現在 DPR 中,但事實并非如此。
要重現它:
- 啟動 Delphi 10.4,
- 啟動一個新的 Delphi 包(檔案主選單)
- 在 {$IMPLICITBUILD ON} 之后添加 {$ENDIF IMPLICITBUILDING}。
- 現在打開專案選項,更改一些內容并關閉對話框。
IMPLICITBUILDING 指令將消失。
uj5u.com熱心網友回復:
轉到 Project>Options>Building>Delphi Compiler>Hints and Warnings,選擇平臺和配置,然后將該警告設定為False. 并保存。(根據您的 Delphi 版本,此設定的確切位置可能不同。)

uj5u.com熱心網友回復:
在以下 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,您也應該能夠將一個單元添加到您的專案中,并在其中放置您的編譯器指令。編譯器明智的,這必須首先遇到。但我不知道你為什么不這樣做,如果沒有代碼示例,我永遠不會有線索。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460943.html
