fatal error C1010 - "stdafx.h" in Visual Studio how can this be corrected?
Solution 1
Look at https://stackoverflow.com/a/4726838/2963099
Turn off pre compiled headers:
Project Properties -> C++ -> Precompiled Headers
set Precompiled Header
to "Not Using Precompiled Header"
.
Solution 2
The first line of every source file of your project must be the following:
#include <stdafx.h>
Visit here to understand Precompiled Headers
Solution 3
Create a new "Empty Project" , Add your Cpp file to the new project, delete the line that includes stdafx.
Done.
The project no longer needs the stdafx. It is added automatically when you create projects with installed templates.
user1800967
Updated on July 09, 2022Comments
-
user1800967 almost 2 years
I compile the following code but I get a compile error in Visual Studio that I cannot understand.
#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; }
The error reads:
"wordcount.cpp(57) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?"
I don't believe I need a header file to run this code. Thank you for all your help in advance.
-
john over 10 yearsNot true, the answer is to turn off precompiled headers.
-
Glenn Teitelbaum over 10 years@user1800967 - in VS2010 -
Common Properties
->Configuration Properties
->C/C++
->Precompiled Headers
; thenPrecompiled Header
should beNot Using Precomiled Header
-
ShinjiOno over 8 years@john either way works. Precompiled headers can (but don't always) significantly improve compile speed, though they do have some disadvantages, too. If user1800967 wants to use precompiled headers, he can add #include <stdafx.h> as the first non-comment line in his source files. asif is incorrect about it being required to be the first line in the source file, but it does need to be the first non-comment line in the source file.
-
Ray Goudie over 6 yearsThis works when using Visual Studio 2017 Community Edition. Compiles on the first attempt in 64-bit mode with a few warnings about numeric conversions that may lead to data loss.
-
user202729 almost 6 yearsLooks wrong. It's
#include "stdafx.h"
, not#include <stdafx.h>
. -
carthurs over 5 yearsThis should be the accepted answer. Solutions that say "just turn off the feature if it's not working for you" are not really solutions at all.
-
Nicolás de Ory over 3 yearsIt's worth noting that if you still get the same error, it might be because you didn't turn off the option in the correct release configuration or platform.
-
Sandburg almost 2 yearsYou can turn it off for a selection of source files. Which is useful for side modules not related to you AFX project. (Click right on each file) Practice: It's better to group the not AFX files.