如何在c99模式下编译?

时间:2013-09-02 15:37:21

标签: windows gcc command-line c99

我在Windows平台上,有没有办法在c99模式下在命令行编译程序,没有必须在每个语句中键入-std=c99?我目前的gcc版本是4.4.1。

1 个答案:

答案 0 :(得分:2)

gcc没有提供通过例如环境变量指定命令行参数的方法。如果你想要-std=c99的效果,那么在某种程度上你将不得不用该参数调用gcc命令。

如果从类似Unix的命令shell调用gcc,例如与Cygwin一起使用的命令shell,则可能已经有c99命令。 POSIX需要这样的命令(它将是gcc命令的包装器)。我目前没有Cygwin安装,所以我无法检查它。如果不存在,则可以定义shell函数:

c99() {
    gcc -std=c99 "$@"
}

如果从Windows MS-DOS样式的命令提示符调用它,则可以创建名为c99.cmd的批处理文件,其中包含:

gcc -std=c99 %1 %2 %3 %4 %5 %6 %7 %8 %9

并将其放在%PATH%

请注意,后一种方法最多只能处理9个命令行参数,通常就足够了。 (我认为有办法处理更多。)

如果您想在编译时捕获更多错误,您当然可以添加更多参数,例如-pedantic -Wall -Wextra

请注意,我已命名命令c99而不是gcc,因此它不会尝试递归调用自身。如果您真的希望能够将其作为gcc调用,则可以指定gcc可执行文件的完整路径(您必须找出系统中的内容)。但是,如果没有额外的参数,这将使调用gcc 变得更加困难。