在 GCC 中设置 std=c99 标志

Posted

技术标签:

【中文标题】在 GCC 中设置 std=c99 标志【英文标题】:Setting std=c99 flag in GCC 【发布时间】:2011-01-12 17:05:41 【问题描述】:

我想知道是否有任何文件可以设置-std=c99 标志,这样我就不必为每次编译都设置它。我在 Ubuntu 上使用 GCC 4.4。

【问题讨论】:

【参考方案1】:

不要调用/usr/bin/gcc,而是使用/usr/bin/c99。这是单 Unix 批准的调用 C99 编译器的方式。在 Ubuntu 系统上,这指向一个脚本,该脚本在添加 -std=c99 标志后调用 gcc,这正是您想要的。

【讨论】:

好的,我是 linux 编程新手(在大学学习),如何使用 /usr/bin/c99 ?我正在使用带有 C 插件的 Vim-Gnome,我只是在其中执行 \rr 来编译和运行。 从我在网上找到的资料来看,有一个名为C_CCompiler 的全局变量指定了C 编译器。它通常设置为gcc。用c99 替换它的内容,一切都会好起来的。请参阅以下帮助文件:lug.fh-swf.de/vim/vim-doc/csupport.html 请注意,在 Mac 上使用 c99 可能会给您带来意想不到的结果:***.com/questions/4182413【参考方案2】:

alias gcc99= gcc -std=c99 怎么样?

【讨论】:

+1 我就是这么做的。当您使用它时,将 -Wall 和 -pedantic 标志添加到别名中。 +1。现在这就是我的别名的实际样子:alias gcc99=gcc -Wall -pedantic -ansi -std=c99。是的,ansi 也是如此。 @dirkgently:那么 GCC 使用 -std=c99 -ansi 实现了什么标准(如果有)?你启用了 C99,然后禁用了 C89 中没有的任何东西,这会导致两者的共同子集吗? 我确实读过,但它告诉我 GCC 做了什么,而不是为什么它有用 ;-)。特别是,-ansi -std=c99 -pedantic 如何以及为什么优于 -std=c89 -pedantic 顺序确实很重要。例如int main() // thing <newline> ,其中 是换行符。使用gcc -ansi -std=c99 -pedantic 编译,但不使用gcc -std=c99 -ansi -pedantic

以上是关于在 GCC 中设置 std=c99 标志的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Emscripten 中设置 gcc 标志

带有 -std=c99 的 GCC 抱怨不知道 struct timespec

如何在 ngCookies 中设置 httpOnly 标志?

链接使用不同预处理器标志或 C 标准构建的库

怎么在linux环境变量中设置多个gcc头文件搜索路径?

gcc支持的C语言标准(-std选项)