我試圖編譯使用g一些C++代碼(是的,故意的)。我得到這樣的錯誤(例如):如何抑制警告,「無效*」到「富*」轉換(由-fpermissive從錯誤中減少)
error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive]
添加-fpermissive
的編譯選項打動了我:
error: invalid conversion from 'void*' to 'unsigned char*' [-Werror=permissive]
這似乎是一個錯誤,因爲-Werror
,但是加入-Wno-error=permissive -Wno-permissive
結果:
error: -Werror=permissive: no option -Wpermissive
error: unrecognized command line option "-Wno-permissive" [-Werror]
如何禁用從void *轉換爲其他指針類型的警告(globaly)?
您可以修復編譯器或者您可以修復您的代碼,1989年很久以前。通過在你的代碼中寫入一個明確的(強制轉換)來實現前進 –
抑制錯誤不會使錯誤消失。毫無意義的是,你要將C編譯爲C++,然後抱怨說你沒有有效的C++。如果你想將它編譯爲C++,那麼將它轉換爲有效的C++,或者將它編譯爲C. –
(好吧,顯然stackoverflow重新排列標籤;現在刪除'C++')。我特別感興趣*告訴'g ++' (不是任何隨機的C++實現)來忽略這些警告,以及相當於''-Wno-''是'寬容'的。 –