VS錯誤解決 C4146 一元負運算符應用於無符號類型 結果仍爲無符號類型

VS錯誤解決  C4146 一元負運算符應用於無符號類型 結果仍爲無符號類型

在VS2015下編譯NTL庫的時候,我編譯了NTL庫源代碼生成靜態鏈接庫,在應用程序設置那一步,雖然將應用程序選成了靜態鏈接庫,也沒有勾選預編譯頭,但是忽略了附加選項裏面的“安全開發聲明週期(SDL)檢查”,沒去掉勾選直接就點擊完成了。

隨後添加ntl-src並且附加include目錄,但是在生成解決方案的時候,出來一百多個錯誤,這些錯誤都是C4146 一元負運算符應用於無符號類型 結果仍爲無符號類型

顯然這是SDL搞的鬼。安全開發生命週期(SDL)/ GS編譯器能協助安全軟件開發的範圍之外的建議。這些從具體的代碼生成功能,如使用安全相關的編譯器警告和更多的一般性建議適當初始化或消毒指針strict_gs_check範圍。

解決:

點擊“右鍵項目-屬性-常規”,將SDL檢查改爲否即可。再一次生成解決方案,便沒有了之前的錯誤。

發佈了18 篇原創文章 · 獲贊 5 · 訪問量 2017
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章