[英]Convert Warning to Error
在Windows中,VC ++有一個漂亮的選項/ We可以將特定的警告轉換為錯誤。 同樣,VC ++發出的每個警告都有一個警告編號,例如
warning C4265: 'CFoo' : class has virtual functions, but destructor is not virtual
因此,使用/ We開關作為/ We4265可以輕松識別編號並添加編譯器選項
我檢查了g ++文檔,發現類似的東西(我相信),- Werror = ,但是文檔中提到
將指定的警告變為錯誤。
但是我的問題是
給定編譯器警告
/yada/yada/src/inc/module.h:580: warning: 'struct IFoo' has virtual functions but non-virtual destructor
如何使用-Werror
編譯器選項將其轉換為錯誤?
手冊中的那句話繼續着,並給出了答案:
附加了警告說明符; 例如,
-Werror=switch
將由-Wswitch
控制的警告轉換為錯誤。 此開關采用否定形式,用於對特定警告取-Werror
; 例如,即使-Werror
生效,-Wno-error=switch
會使-Wswitch
警告不是錯誤。
我不確定100%,但是-Wdelete-non-virtual-dtor
可能是有問題的警告,因此您需要-Werror=delete-non-virtual-dtor
。
使用更高版本的g ++或Clang ++編譯代碼,它們也會發出警告的名稱。
$ clang++ -Wall -Wextra -Werror=non-virtual-dtor test.cpp
test10.cpp:4:3: error: 'X' has virtual functions but non-virtual destructor
[-Wnon-virtual-dtor]
~X(){}
^
1 error generated.
不指定-Werror
而沒有任何參數將所有警告轉換為錯誤,因此也可以選擇上面感興趣的警告。如果只對將特定警告轉換為錯誤感興趣,則可以使g ++在其中打印錯誤開關詳細模式。 較新版本的g ++甚至會自動執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.