我想像这样在 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
兼容。
如果您不怕研究其他构建工具,那么有一些支持开箱即用的多操作系统或多工具链构建。我相信scons
和cmake
都能做到这一点。