c – 预编译头文件问题

我现在正在重新组织我的项目,最近一个简单的应用程序现在变成了一对C项目 – 静态库和实际应用程序.

我想在两个项目之间共享一个预编译的头,但是在设置.pdb文件路径时遇到一些麻烦.

假设我的第一个项目名为Library,并使用相应的Library.pdb文件构建它的.lib文件.现在,第二个项目称为Application,并将所有内容构建到同一文件夹(.exe和另一个Application.pdb文件)中.

现在我的两个项目都基于一个实际的头文件创建自己的预编译头文件(Library.pch和Application.pch).它有效,但我认为这是浪费时间,我认为应该有一种方法在两个项目之间共享一个预编译的头.

如果在我的应用程序项目中我尝试设置使用预编译头(/ Yu)选项并将其设置为Library.pch,它将无法工作,因为以下错误:

error C2858: command-line option 'program database name "Application.pdb" inconsistent with precompiled header, which used "Library.pdb".

那么,有没有人知道在两个项目之间共享一个预编译头的技巧或方法,保留适当的调试信息?

最佳答案
问题是,为什么要共享预编译头(PCH)文件.一般来说,我会说,这没有意义. PCH用于加速编译,以便在不同项目之间共享任何信息.

由于您还要编写有关PDB文件的内容,因此您可能希望使用应用程序调试库代码.这可以通过在编译库时设置/ Fd参数来实现.在应用程序中链接库并且链接器找到相应的PDB文件时,您将获得完整的调试支持.

转载注明原文:c – 预编译头文件问题 - 代码日志