gpt4 book ai didi

c++ - 预编译 header IntelliSense 错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:24 26 4
gpt4 key购买 nike

我在我正在处理的静态库项目中启用了预编译 header 。查看其他 StackOverflow 问题,#include "stdafx.h"的关键位置似乎在 .cpp 文件中,而不是 .h 文件中。

但是,当我在 Visual Studio 中执行此操作时,出现 IntelliSense 错误:

1 IntelliSense: PCH warning: header stop cannot be in a macro or #if block. An IntelliSense PCH file was not generated. ....\Common\Core\Geometry\Ellipsoid.h 9

静态库项目确实编译成功,即使出现此 IntelliSense 错误。

.h 文件由此类声明组成:

#ifndef GEOMETRY_ELLIPSOID_H
#define GEOMETRY_ELLIPSOID_H

class Ellipsoid { // 'class' is underlined with a red line (error)
// ...
};

#endif // !GEOMETRY_ELLIPSOID_H

.cpp 定义了 header 中声明的类:

#include "Common\Core\stdafx.h"
#include "Ellipsoid.h"

// ...

通过在 header 中包含 stdafx.h,智能感知错误消失。这是使用预编译头文件的正确方法吗?在 header 中包含 stdafx.h 有什么含义?

最佳答案

你必须在文件开头添加#pragma once答案在这里:PCH Warning: header stop cannot be in a macro or #if block - Visual C++ 2010 Express SP1 macro-or-if-block-visual-c-2010-exp

关于c++ - 预编译 header IntelliSense 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739176/

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