我正在开发一个大型协作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