我可以安全地假设所有(或大多数)"cc" 在 *nix 系统上支持“-Wall”吗?
Can I safely assume all (or most) "cc" supports "-Wall" on *nix systems?
我想在Makefile中这样写
foo: foo.c
$(CC) -o foo -Wall foo.c
但我不确定是否所有 cc
实现都支持 -Wall
。
不,没有关于 C 编译器命令行界面的标准。
例如,Microsoft 编译器(在 Windows 中)根本不接受以 -
开头的选项,因为这不是 Windows 程序通常使用的语法。
不,您可以做的最接近仅使用便携式选项的事情是将自己限制在 POSIX C89 和 C99 选项上。 -Wall
不是其中之一。有关选项,请参阅 Opengroup's Unix Specification for c99。而且这只给出了 unixy 系统的答案,而不是 Microsoft。
-Wall
是(AFAIK)由 GNU gcc
引入并由 clang
继承以与 GNU gcc
.
兼容
如果您不怕研究其他构建工具,有些工具支持多OS 或开箱即用的多工具链构建。我相信 scons
和 cmake
可以做到这一点。
我想在Makefile中这样写
foo: foo.c
$(CC) -o foo -Wall foo.c
但我不确定是否所有 cc
实现都支持 -Wall
。
不,没有关于 C 编译器命令行界面的标准。
例如,Microsoft 编译器(在 Windows 中)根本不接受以 -
开头的选项,因为这不是 Windows 程序通常使用的语法。
不,您可以做的最接近仅使用便携式选项的事情是将自己限制在 POSIX C89 和 C99 选项上。 -Wall
不是其中之一。有关选项,请参阅 Opengroup's Unix Specification for c99。而且这只给出了 unixy 系统的答案,而不是 Microsoft。
-Wall
是(AFAIK)由 GNU gcc
引入并由 clang
继承以与 GNU gcc
.
如果您不怕研究其他构建工具,有些工具支持多OS 或开箱即用的多工具链构建。我相信 scons
和 cmake
可以做到这一点。