2

我在windows平台上,有什么办法可以在c99模式下在命令行中编译程序,不必输入-std=c99每条语句?我当前的 gcc 版本是 4.4.1 。

4

1 回答 1

2

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

如果您gcc从类 Unix 命令 shell(例如与 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 但这将使得在没有额外参数的情况下更难以调用。

于 2013-09-02T20:37:40.997 回答