我想在Makefile中写这样的
foo: foo.c
$(CC) -o foo -Wall foo.c
但我不确定所有cc
实施是否支持-Wall
。
答案 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
兼容。
如果您不害怕研究其他构建工具,那么有些工具可以支持多操作系统或多工具链构建。我相信scons
和cmake
可以做到这一点。