有什么方法可以抑制有关GCC中缺少头文件的错误?

Is there any way to suppress errors about missing header files in GCC?

提问人:Chelsea-fc 提问时间:6/20/2022 最后编辑:Chelsea-fc 更新时间:6/20/2022 访问量:658

问:

我需要检查一个研究项目的 200 万个 C 源文件,以查找简单的语法错误,例如缺失(分号、括号等)。每个文件都是一个没有 main() 和头文件的函数。 在 GCC 的帮助下,我使用了以下命令:

gcc -c -fsyntax-only -w file.c

我的脚本正在完成这项工作,但唯一的问题是几乎超过 95% 的错误与缺少头文件有关。我尝试将其中一些头文件添加到每个函数中,但这些头文件的数量似乎是无穷无尽的。

有什么方法可以抑制有关缺少头文件的错误?

GCC 是否有特殊标志可供我使用?

与头文件相关的错误示例:

error: unknown type name ‘ioreq_t’
error: unknown type name ‘SH7750State’
error: unknown type name ‘int64_t’
error: unknown type name ‘AVCodecContext’
error: unknown type name ‘BlockDriverState’
error: unknown type name ‘PXA2xxLCDState’

此外,除了使用 GCC 之外,我很欣赏任何其他解决方案。

c gcc 语法错误 gcc 警告

评论

4赞 Adrian Mole 6/20/2022
如果找不到头文件,那么编译器如何使用这些头文件中定义的任何内容?不确定您想要实现什么,在这里。
2赞 463035818_is_not_an_ai 6/20/2022
如果缺少标头,通常无法检查语法。假设有一个 .如果没有声明,你怎么知道语法是否正确?foo{bar}foo
1赞 user207421 6/20/2022
当然不是。您无法禁止显示错误。你的问题没有意义。
2赞 Caleth 6/20/2022
谁制作了“200 万个不可编译的 C 源文件”?
2赞 chtz 6/20/2022
如果您只对 C 源代码感兴趣,我建议删除该标签。这是一个有点相关的问题:stackoverflow.com/questions/27714891/......c++

答:

7赞 Jarod42 6/20/2022 #1

作为解决方法,您可以创建一个包含所有缺失的标头,并用于强制将该包含包含在已检查的文件之上。 因此,您不会编辑所有文件:#include-include

gcc -include "workaround.h" -c -fsyntax-only -w file.c