我在Windows平台上,有没有办法在c99模式下在命令行编译程序,没有必须在每个语句中键入-std=c99
?我目前的gcc版本是4.4.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
变得更加困难。