2011-08-31 18 views
46

Sto provando a compilare un semplice programma VS in C++ come compito per la classe. Abbiamo sempre e solo includiamo e continuo a ricevere questo errore:Come evitare le intestazioni precompilate

1>Assignment.cpp(15): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

Il mio programma è letteralmente questo piccolo ...

#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; 
} 

Ho appena installato Visual Studio Express 2010. Davvero mi piacerebbe avviare un vuoto progetto invece di installare con tutti questi file predefiniti, penso che lo renderebbe molto più semplice ma non ottengo mai quell'opzione quando creo un progetto. Qualcuno ha qualche suggerimento?

+11

È necessario disattivare l'utilizzo delle intestazioni precompilate nelle impostazioni del progetto (è inoltre possibile deselezionare Usa intestazioni precompilate per la creazione di nuovi progetti in futuro.) – user168715

+0

Come posso disattivarlo per progetti futuri? –

+0

Si prega di migliorare il titolo della domanda. Non descrive molto la domanda, ma elenca le tecnologie (che sono i tag). –

risposta

58

È sempre possibile disabilitare l'utilizzo delle intestazioni precompilate nelle impostazioni del progetto.

Istruzioni per VS 2010 (dovrebbero essere simili per le altre versioni di VS):

Select your project, use the "Project -> Properties" menu and go to the "Configuration Properties -> C/C++ -> Precompiled Headers" section, then change the "Precompiled Header" setting to "Not Using Precompiled Headers" option.


Se si sta solo cercando di impostare un minimo di progetto di Visual Studio per il semplice C++ programmi da riga di comando (come ad come quelli sviluppati nelle classi di programmazione C++ introduttive), è possibile creare un empty C++ project.

+0

Vedere, ho provato questo, ma poi non ottengo il "Premere Invio per continuare" Di default quando stampo le stringhe. È abbastanza fastidioso. –

+2

@Howdy_McGee 'std :: cout <<" Premi Invio per continuare "<< std :: endl; std :: cin.get(); 'dovrebbe portarti lì. –

+0

C'è un modo per ottenere che ciò accada di default? In classe non abbiamo mai bisogno di aggiungere alcun codice aggiuntivo per far entrare la stampa per continuare la stringa. –

5

Il file .cpp è configurato per utilizzare l'intestazione precompilata, pertanto deve essere incluso per primo (prima di iostream). Per Visual Studio, il suo nome è solitamente "stdafx.h".

Se nel progetto non sono presenti file stdafx *, è necessario andare alle opzioni di questo file e impostarlo come "Non utilizzare intestazioni precompilate".

+0

Come posso disattivare le intestazioni predefinite? –

+0

Fare clic con il tasto destro del mouse sul file .cpp e selezionare Proprietà, quindi individuare C/C++/Intestazioni precompilate nella vista ad albero e modificare l'opzione Intestazione precompilata. – hamstergene

+0

Utile anche la selezione di massa + opzione Mouse sinistro. Seleziona un gruppo di file di origine _cpp_ in Esplora soluzioni e disattiva come sopra. –

0

tenta di aggiungere #include "stdafx.h" prima #include "iostream"

+0

È un compito di classe - mi è permesso usare solo iostream quindi questa soluzione non funzionerà –

+1

@Ciao: beh tecnicamente Sergey è corretto; hai creato un set di progetti per utilizzare un'intestazione precompilata, ma non devi # # includerla. Quello che devi veramente fare è creare un progetto vuoto o rimuovere la dipendenza dalle intestazioni precompilate. –

+0

@Ed S .: sebbene sia corretto, corregge solo il sintomo. La domanda nascosta è "perché non posso compilare lo stesso programma che ho compilato in classe"? E la risposta a * quella * domanda è "in classe, il progetto non ha usato un'intestazione precompilata". –

9

È possibile creare un progetto vuoto selezionando il "progetto vuoto" dal gruppo "Generale" di Visual C++ progetti (forse questo modello di progetto non è incluso in veloce?) .

per risolvere il problema nel progetto già avete, aprire le proprietà del progetto e visualizzare:

Configuration Properties | C/C++ | Precompiled Headers 

e scegliere "Senza intestazioni precompilate" per l'opzione "intestazione precompilato".

+0

In base a http://msdn.microsoft.com/en-us/library/ms235516%28v=VS.100%29.aspx, il modello di progetto vuoto è espresso. Fammi sapere se non si presenta per te. Trovo preferibile a qualsiasi altro modello di progetto per l'impostazione di un progetto di test rapido-n-sporco, piccolo e autonomo. –

Problemi correlati