gpt4 book ai didi

c++ - stdafx.h 的目的(和 : Why doesn't this work? )

转载 作者:可可西里 更新时间:2023-11-01 10:28:24 28 4
gpt4 key购买 nike

我正在从事一个具有供应商提供的 API 的项目。我在我的项目中制作了一个使用该 API 的类,并且我在我的 stdafx.h 文件中包含了供应商头文件。事情不会编译。

然后我将 #include 直接放入我的类的头文件中,现在可以编译了(是的,我的类包含 stdafx.h 所以这不是原因。

你们有没有人猜到为什么它第一次不能编译?到目前为止,这还不是项目的阻碍,但我更愿意将所有供应商 API 文件保存在它们所属的 stdafx.h 中。

编辑:问题已解决,我通过忘记 #ifndef 头文件然后以错误的顺序包含它们来创建循环依赖。我觉得自己像个白痴。

最佳答案

stdafx.h 主要用于 VS 生成的项目,作为要预编译的 header 的“容器”。

当您将新的 #include 添加到 stdafx.h 时,它没有被包含,因为您的项目可能配置为使用预编译头文件,并且当您添加一些东西时对于 stdafx.h,您需要重新生成包含预编译信息的 .pch 文件。

一种方法是在您的项目中有一个 .cpp 文件,它只做 #include "stdafx.h"。也许称它为“precompile.cpp”。然后转到项目设置那个 .cpp 文件并更改以下设置(针对所有配置):

"C/C++ | Precompiled Headers | Precompiled Header" setting 

并选择“创建/Yc”

这将设置构建,以便在需要构建 precompile.cpp 时(因为它包含的 stdafx.h header 已更改),它将重建其他一切使用的 .pch 文件。

关于c++ - stdafx.h 的目的(和 : Why doesn't this work? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6772597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com