这篇笔记 说:
-ansi
:告诉编译器实现ANSI语言选项。这会关闭与 ANSI 标准不兼容的 GCC 的某些“功能”。
-pedantic
:与-ansi
一起使用,这告诉编译器严格遵守 ANSI 标准,拒绝任何不符合的代码。
第一件事:
- GCC/G++ 编译器的
-pedantic
和-ansi
选项的目的是什么(我看不懂上面的描述)? - 使用这两个选项的正确情况是什么?
- 我应该什么时候使用它们?
- 它们重要吗?
原文由 huahsin68 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果可能的话,GCC 编译器总是试图编译你的程序。但是,在某些情况下,C 和 C++ 标准指定禁止某些扩展。遇到这些扩展时,符合标准的编译器(例如 GCC 或 g++)必须发出诊断。
例如,GCC 编译器的 -pedantic 选项会导致 GCC 在这种情况下发出警告。使用更严格的 -pedantic-errors 选项会将此类诊断警告转换为将导致编译在此类点失败的错误。只有那些需要由符合标准的编译器标记的非 ISO 结构才会生成警告或错误。