我正在尝试使用 GCC 为我的共享库创建一个预编译的头文件。在进行必要的配置并尝试构建后,我收到了以下警告:
cc1plus: warning: ./PrecompiledHeaders.h.gch/.c++: created and used with different settings of -fpic [enabled by default]
经过一段时间的搜索,我发现这段代码似乎表明 PCH 不适用于共享代码:
/* -fpic and -fpie also usually make a PCH invalid. */
if (data[0] != flag_pic)
return _("created and used with different settings of -fpic");
if (data[1] != flag_pie)
return _("created and used with different settings of -fpie");
data += 2;
所以我把我的库改成静态库,错误消失了,编译时间也减少了!那么确实不可能有一个带有共享库的 PCH 吗?如果是,是否有任何解决方法?