学习GCC / G ++编译器?
这个笔记说:
-ansi
:告诉编译器实现ANSI语言选项。 这关闭了与ANSI标准不兼容的GCC的某些“特征”。
-pedantic
:与-ansi
一起使用,这告诉编译器严格遵守ANSI标准,拒绝任何不合规的代码。
首先要做的是:
-pedantic
和-ansi
选项的用途是什么(我无法理解上面的描述)? GCC编译器总是试图编译你的程序,如果这是可能的话。 但是,在某些情况下,C和C ++标准指定禁止某些扩展。 符合编译器如gcc或g ++必须在遇到这些扩展时发布诊断。 例如,gcc编译器的-pedantic选项会导致gcc在这种情况下发出警告。 使用更严格-pedantic-errors
选项将这些诊断警告转换为会导致编译失败的错误。 只有那些需要由符合编译器标记的非ISO结构才会产生警告或错误。
我一直在编码中使用它。
-ansi
标志等同于-std=c89
。 如上所述,它关闭了GCC的一些扩展。 添加-pedantic
会关闭更多扩展并生成更多警告。 例如,如果您的字符串文字长度超过509个字符,则由于它超出了C89标准所要求的最小限制,所以-pedantic
警告。 也就是说,每个C89编译器都必须接受长度为509的字符串; 他们被允许接受更长的时间,但如果你是迂腐的,即使允许编译器接受更长的字符串,并且没有迂腐的警告,GCC也会接受它们,使用更长的字符串是不可移植的。
基本上,它会使您的代码在其他也实现ANSI标准的编译器下编译起来更容易,并且,如果您在其他操作系统/平台下小心使用了库/ api调用。
第一个关闭GCC的特定功能。 (-ansi)第二个,会抱怨任何不符合标准的东西(不仅仅是GCC的特定功能,也包括你的构造)。(-pedantic)。
链接地址: http://www.djcxy.com/p/86353.html