/w、/W0、/W1、/W2、/W3、/W4、/w1、/w2、/w3、/w4、/Wall、/wd、/we、/wo、/Wv、/WX (警告層級)

指定編譯器如何對指定的編譯產生警告。

語法

/w
/W0
/W1
/W2
/W3
/W4
/Wall
/Wv [ version ]
/WX
/w1 警告
/w2 警告
/w3 警告
/w4 警告
/wd 警告
/we 警告
/wo 警告

備註

警告選項會指定要顯示的編譯器警告,以及整個編譯的警告行為。

下表說明警告選項和相關引數:

選項 描述
/w 隱藏所有編譯器警告。
/W0

/W1

/W2

/W3

/W4
指定要由編譯器產生的警告層級。 有效的警告層級範圍從 0 到 4:
/W0 會隱藏所有警告。 它相當於 /w
/W1 會顯示層級 1 (嚴重) 警告。 /W1 是命令列編譯器中的預設設定。
/W2 會顯示層級 1 和層級 2 (重大) 警告。
/W3 會顯示層級 1、層級 2 和層級 3 (生產品質) 警告。 /W3 是 IDE 中的預設設定。
/W4 會顯示層級 1、層級 2 和層級 3 警告,以及預設未關閉的所有層級 4 (資訊) 警告。 建議您使用此選項來提供類似 lint 的警告。 對於新專案,最好 在所有編譯中使用 /W4 。 此選項可協助確保最少可能難以尋找的程式碼缺失。
/Wall 顯示 /W4 顯示的所有警告 ,以及 /W4 未包含的所有其他警告 ,例如,預設為關閉的警告。 如需詳細資訊,請參閱 預設 關閉的編譯器警告。
/Wv [ version ] 只顯示版本 編譯器版本和更早版本中引進的 警告。 當您移轉至較新版本的編譯器時,可以使用此選項來隱藏程式碼中的新警告。 它可讓您在修正建置程式時維護現有的建置程式。 選擇性參數 版本 的格式 為 nn [。 mm [. bbbbb ]],其中 nn 是主要版本號碼, mm 是選擇性的次要版本號碼,而 bbbbb 是編譯器的選擇性組建編號。 例如,使用 /Wv:17 只顯示 Visual Studio 2012(主要版本 17)或更早版本中引進的警告。 也就是說,它會顯示任何版本編譯器的警告,其主要版本號碼為 17 或更少。 它會隱藏 Visual Studio 2013 (主要版本 18) 和更新版本中引進的警告。 /Wv 預設 會使用目前的編譯器版本號碼,而且不會隱藏任何警告。 如需編譯器版本隱藏哪些警告的相關資訊,請參閱 編譯器版本的 編譯器警告。
/WX 將所有編譯器警告視為錯誤。 對於新專案,最好 在所有編譯中使用 /WX ;解決所有警告可確保最不可能找到的程式碼缺失。

連結器也有 /WX 選項。 如需詳細資訊,請參閱 /WX (將連結器警告視為錯誤)

下列選項彼此互斥。 從這個群組指定的最後一個選項是套用的:

選項 描述
/w1 nnnn

/w2 nnnn

/w3 nnnn

/w4 nnnn
設定 nnnn 指定之警告編號的警告層級。 這些選項可讓您在設定特定警告層級時變更該警告的編譯器行為。 您可以將這些選項與其他警告選項搭配使用,以強制執行您自己的警告編碼標準,而不是 Visual Studio 提供的預設程式碼標準。

例如, /w34326 會使 C4326 產生為層級 3 警告,而不是層級 1。 如果您使用 /w34326 選項和 /W2 選項進行編譯 ,則不會產生警告 C4326。
/wd nnnn 隱藏 nnnn 指定的編譯器警告。

例如, /wd4326 會隱藏編譯器警告 C4326。
/we nnnn 將 nnnn 指定的 編譯器警告視為錯誤。

例如, /we4326 會導致編譯器將警告編號 C4326 視為錯誤。
/wo nnnn 報告 nnnn 僅指定一次的 編譯器警告。

例如, /wo4326 只會報告警告 C4326 ,這是編譯器第一次遇到。

如果您在建立先行編譯標頭時使用任何警告選項,則會保留這些設定。 使用先行編譯標頭會將這些相同的警告選項再次生效。 若要覆寫先行編譯的標頭警告選項,請在命令列上設定另一個警告選項。

您可以使用 #pragma warning 指示詞來控制在特定原始程式檔的編譯時間所報告的警告層級。

原始程式碼中的警告 pragma 指示詞不受 /w 選項影響

置錯誤檔 描述警告和警告層級,並指出為何某些語句可能不如您打算編譯。

在 Visual Studio 開發環境中設定編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 若要設定 /W0 /W1 /W2 /W3 /W4 /Wall /Wv /WX 或 /WX - 選項,請選取 [組態屬性 > C/C++ > 一般]。

    • 若要設定 /W0 /W1 、/W2 /W3 /W4 /Wall 選項,請修改 警告層級 屬性。

    • 若要設定 /WX 或 /WX - 選項,請修改 [將警告視為 Errors] 屬性。

    • 若要設定 /Wv 選項的版本,請在 [警告版本 ] 屬性中 輸入編譯器版本號碼。

  3. 若要設定 /wd /we 選項,請選取 [ 組態屬性 C/C++ > 進階 ] > 屬性頁。

    • 若要設定 /wd 選項,請選取 [ 停用特定警告 ] 屬性下拉式清單控制項,然後選擇 [ 編輯 ]。 在 [停用特定警告 ] 對話方塊的編輯方塊中 ,輸入警告編號。 若要輸入多個警告,請使用分號 ( ; ) 分隔值。 例如,若要停用 C4001 和 C4010,請輸入 4001;4010 . 選擇 [ 確定 ] 以儲存變更,並返回 [ 屬性頁 ] 對話方塊。

    • 若要設定 /we 選項,請選取 [ 將特定警告視為錯誤] 屬性下拉式清單控制項,然後選擇 [ 編輯 ]。 在 [將特定警告視為錯誤 ] 對話方塊中的編輯方塊中 ,輸入警告編號。 若要輸入多個警告,請使用分號 ( ; ) 分隔值。 例如,若要將 C4001 和 C4010 視為錯誤,請輸入 4001;4010 . 選擇 [ 確定 ] 以儲存變更,並返回 [ 屬性頁 ] 對話方塊。

  4. 若要設定 /wo 選項,請選取 [ 組態屬性 C/C++ > 命令列 ] > 屬性頁。 在 [ 其他選項 ] 方塊中輸入編譯器選項。

  5. 選取 [確定] 儲存您的變更。

若要以程式設計方式設定編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法