如何在gcc中禁用“您的意思是……”建议?

问题描述 投票:-4回答:1

较新的gcc试图对我进行第二次猜测,并以无用的“你的意思是”淹没有关实际问题的警告。建议。

示例:

$ gcc -Wall -c -o /dev/null -xc - <<'EOT'
#include <stdlib.h>

void foo(char *b, size_t z){ readlink("/foo", b, z); }
EOT
<stdin>: In function ‘foo’:
<stdin>:3:30: warning: implicit declaration of function ‘readlink’;
did you mean ‘realloc’? [-Wimplicit-function-declaration]

[不,我不是说realloc;我只是忘了包含unistd.h标头。

有没有办法关闭此功能?

例如是否只打印implicit declaration of function ‘readlink’ [-Wimplicit-function-declaration],没有有用的建议?

c gcc compiler-warnings
1个回答
0
投票

我认为gcc中没有解决方案,除非您自己进行修改。一种非最佳解决方案正在传递到sed

gcc main.c 2>&1 | sed -E "s/; did you mean .*\?//g"

[我在这里正在用stderrstdout(打印警告的地方)重定向到2>&1,然后我制作了一个简单的替换脚本来删除该短语。

[它增加了一些复杂性,并且您失去了颜色,但是它满足了您的要求。

© www.soinside.com 2019 - 2024. All rights reserved.