如何避免预编译头文件

How*_*Gee 65 c++ visual-studio-2010 visual-studio

我试图用C++编译一个简单的VS程序作为类的赋值.我们只包括<iostream>并且我一直收到此错误:

1> Assignment.cpp(15):致命错误C1010:查找预编译头时意外结束文件.你忘记添加'#include "StdAfx.h"'到你的来源了吗?

我的程序确实很小......

#include <iostream>
using namespace std;
int main()
{
    unsigned int day = 30;

    cout << "My Name is John Doe" << endl;
    cout << "My Major is CS" << endl;
    cout << "I was born on day " << day << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我刚刚安装了Visual Studio Express 2010.我真的很想开始一个空的项目,而不是安装所有这些预定义的文件,我认为它会使它变得更容易但我在创建项目时从未得到过这个选项.有人有什么建议吗?

And*_*ron 95

您始终可以在项目设置中禁用预编译头的使用.

VS 2010的说明(对于其他版本的VS应该类似):

选择项目,使用"项目 - >属性"菜单并转到"配置属性 - > C/C++ - >预编译标题"部分,然后将"预编译标题"设置更改为"不使用预编译标题"选项.


如果您只是尝试为简单的C++命令行程序(例如在介绍性C++编程类中开发的程序)设置最小的Visual Studio项目,则可以创建一个空的C++项目.

  • @Howdy_McGee`std :: cout <<"按Enter继续"<< std :: endl; std :: cin.get();`应该让你到那儿. (2认同)
  • @ildjarn:但问题不在于预编译的头文件.真正的问题是OP在项目向导对话框中选择了错误的项目类型和/或选项.由于OP正在以简单的标准C++编写学校作业,因此最有助于在Visual Studio中编写符合标准的C++程序的良好习惯的项目类型是空项目类型.因此,我提到了标准的遵守情况. (2认同)
  • @André:`traits :: eof()`真的,不是`-1`. (2认同)

Mic*_*urr 9

您可以通过从Visual C++项目的"常规"组中选择"空项目"来创建一个空项目(也许该项目模板不包含在Express?中).

要修复已有项目中的问题,请打开项目属性并导航至:

Configuration Properties | C/C++ | Precompiled Headers
Run Code Online (Sandbox Code Playgroud)

并为"预编译标题"选项选择"不使用预编译标题".


ham*_*ene 5

.cpp文件配置为使用预编译头,因此必须首先包含它(在iostream之前).对于Visual Studio,它的名称通常是"stdafx.h".

如果项目中没有stdafx*文件,则需要转到此文件的选项并将其设置为"不使用预编译头".