是否可以包含带有不同编译标志的预编译头?

时间:2019-05-27 08:03:23

标签: c++ clang++ precompiled-headers

我想使用我的代码库的默认编译标志来预编译某个较大的头文件。例如,这将是-O3。但是,如果我希望将此PCH包含在不需要任何优化-O0的构建目标中,则clang会拒绝此操作,因为它们具有冲突的预定义宏。

__OPTIMIZE__预定义宏已在PCH文件中启用,但当前已禁用”

我看到有一个-fno-validate-pch选项可以完全满足我的要求,但是在Clang 6和Clang 8中都不存在。 https://reviews.llvm.org/D24054

最终,在这种情况下,有什么办法告诉clang允许继续编译?这些预编译标头的好处是,它们通常可以在数百个构建目标中使用,但是如果某些标志(尤其是优化级别)必须相同,则将失去可用性和便利性。

这已在Ubuntu 16.04上使用Clang ++ 6.0.0进行了测试。

0 个答案:

没有答案