.gch 和 .pch 预编译头文件之间有什么区别?

Arn*_*rne 0 c++ gcc clang precompiled-headers

默认情况下,gcc 生成 .gch 预编译头文件。然而,clang 需要 .pch 头文件。在其他基于 gcc 的项目上使用 clang 运行 scan-build 时,我因此收到错误。可能导致此问题的两种文件格式之间有什么区别?

eer*_*ika 5

主要区别在于,clang 预编译的头文件仅与 clang 兼容,而 GCC 预编译的头文件仅与 GCC 兼容。这是一个可能会导致您出现问题的差异。

此外,预编译头文件仅与特定版本的编译器以及特定的编译选项集兼容。如果上述任何方面发生变化,则必须重新编译这些头文件。