我正在開發一個大型協作C++項目,該項目既可以在各種風格的Linux,OS X和Windows上開發和運行。我們使用GCC,Visual Studio C++和Intel C++編譯器在這些平臺上進行編譯。隨着越來越多的人開始爲項目開發代碼,我們開始在編譯和運行時看到特定於特定操作系統上特定編譯器的特定錯誤。一個例子就是隱式包含某些操作系統/編譯器對似乎爲您找到的頭文件,意外地從派生類中的基類中重載了一個函數。使GCC和其他C++編譯器非常嚴格
我的目標是更加嚴格地編譯GCC,並在所有平臺上捕獲更多錯誤,以便我們不會遇到這些問題。這是我說我想嘗試的GCC標誌的名單,我已經通過谷歌和GCC手冊頁發現:
- -Wall
- -Wextra
- -Winit自
- -WOLD式鑄造
- -Woverloaded虛擬
- -Wuninitialized
- -Wmissing申述
- -Wini T-自
- -ansi
- -pedantic
什麼是人使用,使GCC(以及同樣重要的是Visual Studio的C++和英特爾C++編譯)其他標誌服從℃的嚴格標準++語言?請具體說明您正在討論的編譯器和版本,因爲其中一些編譯器和版本可能無法在所有版本的所有編譯器中實現。
有很多商業工具可用:http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B。如果你想投資一個商業工具,你通常可以得到試用版/評估版。 – 2009-01-29 10:56:56