致命错误 C1010 - Visual Studio 中的“stdafx.h”如何纠正?

Posted

技术标签:

【中文标题】致命错误 C1010 - Visual Studio 中的“stdafx.h”如何纠正?【英文标题】:fatal error C1010 - "stdafx.h" in Visual Studio how can this be corrected? 【发布时间】:2013-11-21 05:35:28 【问题描述】:

我编译了以下代码,但在 Visual Studio 中出现了我无法理解的编译错误。

#include <iostream>

using namespace std;

int main()

    int matchCount, findResult;
    long childPID;
    string userInput = "blank";

    // string to be searched through
    string longString = "The PPSh-41 is a Soviet submachine gun designed by Georgi Shpagin as an inexpensive, simplified alternative to the PPD-40.";

    while (userInput.compare("!wq"));
    
        // reset variables for reuse
        matchCount = 0;
        findResult = -1;

        cout << "Please enter a word/s to search for (!wq to exit): "; // prompts user for string to search for
        cin >> userInput; // takes user input

        if (userInput.compare("!wq")) // checks user input to see if they still wish to search for a string
        
            childPID = fork();

            if (childPID == 0)
            
                while (findResult < longString.length)
                
                    findResult = longString.find(userInput, findResult + 1, userInput.length);

                    if (findResult < longString.length)
                        matchCount++;
                

                cout << "There are " << matchCount << " instances of " << userInput << " in longString." << endl;
            
            else
                cout << "childPID != 0" << endl;
        
        else
            cout << "User has chosen to exit. Exiting." << endl;
    

    return 0;

错误显示:

“wordcount.cpp(57) : 致命错误 C1010: 在查找预编译头文件时意外结束文件。您是否忘记将 '#include "stdafx.h"' 添加到源代码中?"

我认为我不需要头文件来运行此代码。提前感谢您的所有帮助。

【问题讨论】:

如果错误消息表明有更改,为什么不试试看会发生什么? 我做到了。只是出现了更多错误。不止一个错误。 哪个编译器?什么操作系统?出现的新错误有哪些示例?你的构建设置是什么和/或你的编译命令是什么? 嗯,这是在 Windows 上,虽然它最初是为了在 Linux 机器上运行。可能是这样吗? 如果编译器警告您从未听说过的标头 - 谷歌标头并找出其中应该包含的内容 【参考方案1】:

看https://***.com/a/4726838/2963099

关闭预编译头文件:

Project Properties -> C++ -> Precompiled Headers

Precompiled Header 设置为"Not Using Precompiled Header"

【讨论】:

@user1800967 - 在 VS2010 中 - Common Properties->Configuration Properties->C/C++->Precompiled Headers ;那么Precompiled Header 应该是Not Using Precomiled Header 值得注意的是,如果还是出现同样的错误,可能是因为你没有在正确的发布配置或平台中关闭该选项。【参考方案2】:

项目的每个源文件的第一行必须如下:

#include <stdafx.h>

访问here了解预编译头文件

【讨论】:

不正确,答案是关闭预编译头文件。 @john 无论哪种方式都可以。预编译的头文件可以(但不总是)显着提高编译速度,尽管它们也有一些缺点。如果 user1800967 想要使用预编译的头文件,他可以添加 #include 作为源文件中的第一个非注释行。 asif 要求它是源文件中的第一行是不正确的,但它确实需要是源文件中的第一个非注释行。 看起来不对。这是#include "stdafx.h",不是#include &lt;stdafx.h&gt; 这应该是公认的答案。那些说“如果该功能不适合你就关闭它”的解决方案根本不是真正的解决方案。【参考方案3】:

新建一个“Empty Project”,将你的Cpp文件添加到新项目中,删除包含stdafx的那一行。

完成。

该项目不再需要 stdafx。当您使用已安装的模板创建项目时,它会自动添加。

【讨论】:

这在使用 Visual Studio 2017 社区版时有效。首次尝试在 64 位模式下编译,并带有一些关于可能导致数据丢失的数字转换的警告。【参考方案4】:

将它放在项目的每个源文件的顶部

#include <stdafx.h>

或/和

您的 .cpp 文件 可能与 pch.h

不在同一目录中

【讨论】:

以上是关于致命错误 C1010 - Visual Studio 中的“stdafx.h”如何纠正?的主要内容,如果未能解决你的问题,请参考以下文章

解决错误 fatal error C1010: unexpected end of file while looking for precompiled head

visual studio除了6还有哪个版本用得多而又不占内存?如何实现多visual studi

visual C++ 6.0 问题:链接:致命错误LNK1104:无法打开文件“调试/ d.exe“ 执行link.exe时出错。

Visual Studio 2010:致命错误 C1189:#error

Visual Studio 2017 - Git 因致命错误而失败

visual c++,链接:致命错误 LNK1104:无法打开文件