共用方式為


/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 (將連結器警告視為錯誤)

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

選項 描述
/w1nnnn

/w2nnnn

/w3nnnn

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

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

例如, /wd4326 會隱藏編譯程式警告 C4326。
/wennnn 將 nnnn 指定編譯程式警告視為錯誤。

例如, /we4326 會導致編譯程式將警告編號 C4326 視為錯誤。
/wonnnn 報告 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++>General]。

    • 若要設定 /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++>Command Line] 屬性頁。 在 [ 其他選項 ] 方塊中輸入編譯程序選項。

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

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

另請參閱

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