c语言 - 我可以安全地假设所有(或大多数)"cc"都支持 *nix 系统上的"-Wall"吗?



我想像这样在 Makefile 中编写

foo: foo.c
        $(CC) -o foo -Wall foo.c

但我不确定是否所有cc实现都支持 -Wall .

不,关于 C 编译器的命令行界面没有标准。

例如,Microsoft编译器(在Windows中(根本不接受以-开头的选项,因为这不是Windows程序通常使用的语法。

不,仅使用便携式选项的最接近的事情是将自己限制为 POSIX C89 和 C99 选项。 -Wall不是其中之一。请参阅 Opengroup 的 Unix 规范 c99 以获取选项。这只能给出 unixy 系统的答案,而不是Microsoft。

-Wall(AFAIK(由GNU gcc引入,并由clang继承以与GNU gcc兼容。

如果您不怕研究其他构建工具,那么有一些支持开箱即用的多操作系统或多工具链构建。我相信sconscmake都能做到这一点。

最新更新