在MSVC中使用预编译头

问题描述 投票:0回答:1

我正在尝试通过 MSVC 在 Windows 上使用预编译头。主要是将所有 Microsoft 的标头捆绑在一个地方并预编译它们以加快编译速度。

问题是我不知道如何实际使用 pch 文件。 我尝试按照官方文档中的两个链接进行操作: 创建预编译头文件 还有这个: 使用预编译头文件

我生成的.pch文件如下:

cl /c /Ycheaders.h main.cpp

headers.h 中我执行以下操作:

#include <windows.h>
#include <iostream>
//--- other includes that will never change ----//

按照文档,这就是我尝试使用它的方式。

cl /Yuheaders.h main.cpp

这给我带来了以下错误: 致命错误C1854:无法覆盖在对象main.obj中创建预编译头期间形成的信息

我认为文档是错误的(因为文档中提供的命令: cl /Ycheader.h main.cpp 是错误的并且不起作用,并且它需要 /c 在它之前,如示例代码中的注释所示),它没有对我来说编译你的 main.cpp 很有意义,所以我重复了上面的步骤,使用 headers.cpp 而不是 main.cpp 创建预编译头文件,其中 headers.cpp 只是一个空源文件单个包含 headers.h 并且我收到链接错误 1 未解决的外部链接错误 1120 未指定未解决的内容。

理想情况下,如果有人有一个关于如何为 msvc 创建头文件的最小示例,然后展示如何使用它们。

c++ visual-studio precompiled-headers cl
1个回答
0
投票

创建pch:

cl /EHsc /c /Yc header.h header.cpp

使用pch:

cl /EHsc /Yu header.h /Fp header.pch main.cpp header.obj
© www.soinside.com 2019 - 2024. All rights reserved.