我可以安全地假设所有(或大多数)“cc”在* nix系统上支持“-Wall”吗?

时间:2017-05-22 10:07:23

标签: c gcc makefile cc

我想在Makefile中写这样的

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

但我不确定所有cc实施是否支持-Wall

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

不,你只能使用便携式选项最接近的是限制自己使用POSIX C89和C99选项。 -Wall不是其中之一。有关选项,请参阅Opengroup's Unix Specification for c99。而这只能为unixy系统提供答案,而不是微软。

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

如果您不害怕研究其他构建工具,那么有些工具可以支持多操作系统或多工具链构建。我相信sconscmake可以做到这一点。