我正在使用MSVC2017和CMake编译带有预编译头的一系列静态库。因此,生成是手动完成的:
生成PCH:
/Yc /Fp"C:\FullPath\precomp.pch"
使用:
/Yu"C:\FullPath\src\pch.h" /FI"C:\FullPath\src\pch.h" /Fp"C:\FullPath\precomp.pch"
一切正常。这些库可以很好地进行编译和链接(并且速度更快,因此预编译有效)。
现在,我想在另一个项目中使用这些库,并获取预编译头使用的符号的链接器错误。我可以通过将precompiledHeader obj添加到新项目中来解决这些错误,但我不喜欢它。依赖于lib的项目不应该知道lib是否使用预编译的标头构建。我的问题:有没有一种方法可以通过已经在所有需要的对象中链接过的静态库来实现,以便相关项目可以链接?我可以想象,如果它是共享库,那么它开箱即用。有没有办法将pch.cpp.obj的符号包含在使用库中?