簡體   English   中英

我們如何使用#pragma警告禁用鏈接器警告?

[英]How do we disable a linker warning with a #pragma warning?

我們可以禁用編譯器警告

#pragma warning(disable:4966)

我們如何使用#pragma指令禁用鏈接器警告? 就像是:

// Disable linker warning LNK4221
#pragma warning(disable:4221)

鏈接器警告不能放在源文件中,因為源文件(.CPP / .C / .H等)用於編譯器的使用而不是鏈接器。 編譯將從一個或多個文件(通過一個或多個“翻譯單元”)生成目標文件。 如果你將#prama disable_linker_warning放在某個源文件中 - .OBJ文件(鏈接的一部分),鏈接器設置應該去哪?

鏈接器設置對項目是全局的 - 因為.OBJ文件被鏈接以生成最終的PE映像,然后將應用鏈接器警告。 您可以在項目設置頁面中選擇鏈接器警告。

預處理程序指令不會被保存,然后會傳播到鏈接器。 它可能導致多路徑模糊(由於多個翻譯單元)和其他復雜性。 這種鏈接器功能可能不可靠。

請注意,在VC ++中,當您選擇單個源文件的屬性時,您看不到任何“鏈接器”設置。

在此輸入圖像描述

您無法使用當前的MSVC工具集禁用此警告。

是的,警告確實非常有用,但在許多情況下你可以自由地忽略這一點。 只要確保你的情況是其中一種情況,繼續前進。 例如,您確定包含導致此警告的編譯單元是必要的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM