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

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

【问题讨论】:

    标签: c programming-languages c99


    【解决方案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 可能会给您带来意想不到的结果:stackoverflow.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
    猜你喜欢
    • 2010-10-09
    • 1970-01-01
    • 2014-12-23
    • 2013-11-27
    • 2019-02-17
    • 2015-05-20
    • 1970-01-01
    • 2015-11-29
    • 2014-05-30
    相关资源
    最近更新 更多