为什么预编译头在GCC中会产生警告?

为什么预编译头在GCC中会产生警告?,gcc,gcc-warning,precompiled-headers,Gcc,Gcc Warning,Precompiled Headers,我有一个头文件MyHeader.hpp,其中包含一组来自外部代码项目的头文件。外部项目的头文件抛出了很多警告,我不想看到这些警告,因为我没有处理这些代码 我已经预编译了MyHeader.hpp,并且我已经通过移动原始MyHeader.hpp文件验证了GCC实际上正在使用预编译的头文件,这样,如果GCC尝试使用它而不是预编译的头文件MyHeader.hpp.gch,就不会找到它。这是可行的,它可以稍微加快编译过程(但没有我希望的那么快) 但是:我仍然看到外部代码中文件产生的所有警告。为什么我会看到

我有一个头文件
MyHeader.hpp
,其中包含一组来自外部代码项目的头文件。外部项目的头文件抛出了很多警告,我不想看到这些警告,因为我没有处理这些代码

我已经预编译了
MyHeader.hpp
,并且我已经通过移动原始
MyHeader.hpp
文件验证了GCC实际上正在使用预编译的头文件,这样,如果GCC尝试使用它而不是预编译的头文件
MyHeader.hpp.gch
,就不会找到它。这是可行的,它可以稍微加快编译过程(但没有我希望的那么快)


但是:我仍然看到外部代码中文件产生的所有警告。为什么我会看到这些警告?我认为GCC实际上不会解析预编译的头文件,并且我已经验证它正在使用预编译的头文件,那么为什么它会显示来自该头文件的警告?

请发布一个自包含的示例。即使错误指向预编译文件,模板实例化之类的东西也不会真正成为预编译头的一部分。