如何修复“PCH 警告:标头不在文件范围内停止”

Sta*_*kun 6 c++ precompiled-headers visual-studio

我已经按照我认为正确的方式设置了程序和头文件,但我不断收到标题中提到的错误。

我曾尝试寻找此问题的修复方法,其中大多数只是添加“;” 在头文件中的类定义之后。我已经尝试了几乎所有我能找到的修复方法,但结果相同。

这是标记错误的主程序:

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include "computeGross.h"
#include "computeInsurance.h"
#include "Employee.h" /*<-----------------This is where the error flags*/
using namespace std;

int main()
{ }
Run Code Online (Sandbox Code Playgroud)

这是错误标记的头文件:

#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include <string>
using namespace std;

struct Employee
{
    string name;
    double rate;
    double hours;
    double insurance;
    double social;
    double stateTax;
    double fedTax;
    double netPay;
    double grossPay;
};

#endif
Run Code Online (Sandbox Code Playgroud)

jsh*_*321 17

仅供参考,我在离开时遇到了这个问题;脱离另一个 .h 文件中的声明。由于该声明从未完成,因此当在下一个 .h 文件中遇到 #define 时,它​​会抛出此错误。


Zan*_*ynx 3

尝试更改头文件的顺序。尝试创建一个新的 cpp 文件并一次包含一个标头。看看哪一个坏了。

减少错误的可能原因,直到找到它。

  • 我首先将 Employee 添加到其他标题之前,问题就解决了。我认为由于其他标题也包括员工,因此需要首先将其包含在我的 main.h 文件中。谢谢。 (2认同)