在 GCC 中,某些警告需要启用优化。例如:
int foo() {
int x;
return x;
}
为了检测未初始化的变量,必须传递-O 。
$ gcc -W -Wall -c test.c
$ gcc -W -Wall -c test.c -O
test.c: In function ‘foo’:
test.c:3: warning: ‘x’ is used uninitialized in this function
但是,这可能会干扰调试。有没有办法只启用警告所需的分析阶段(不仅仅是这个特定的警告,而是尽可能多的),而不会对生成的代码产生太大影响?
我在 x86-64 上使用 GCC 版本 4.3.3 (Ubuntu 4.3.3-5ubuntu4)。