[C++] Microsoft Visual Express, błędy przy kompilacji


(Artur520) #1

Wszystko było okej, działało jednak coś pomieszałem w projektach i teraz nie chce mi nic kompilować :frowning:

np.

// Dodawanie


#include 

#include 




void main()

{

	printf("A wiec jakie liczby chcesz dodac? \n");

	int nL1;

	std::cout << "Podaj 1 liczbe " ;

	std::cin >> nL1;


	int nL2;

	std::cout << "Podaj 2 liczbe " ;

	std::cin >>nL2;


	int nW= nL1 + nL2;

	printf("Dodales, wyszlo tyle: ", nW);

	std::cout << nW;

	getch();

}

wcześniej mi to działo bez problemu a teraz wyrzuca:

1>------ Build started: Project: 123, Configuration: Debug Win32 ------

1> stdafx.cpp

1> 123.cpp

1>c:\users\artur\documents\visual studio 2010\projects\123\123\123.cpp(3): warning C4627: '#include ': skipped when looking for precompiled header use

1> Add directive to 'StdAfx.h' or rebuild precompiled header

1>c:\users\artur\documents\visual studio 2010\projects\123\123\123.cpp(4): warning C4627: '#include ': skipped when looking for precompiled header use

1> Add directive to 'StdAfx.h' or rebuild precompiled header

1>c:\users\artur\documents\visual studio 2010\projects\123\123\123.cpp(24): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

(Drobok) #2

Utwórz nowy PUSTY projekt i skopiuj sobie twój kod i będzie działać. W menu co ci wyskoczy klikasz dalej i zaznaczasz emply.

Ew wywal ten klik stdafx.cpp, ale nie wiem czy to na pewno rozwiąże problem.


(Artur520) #3

dziękuje :slight_smile: jak ustawiałem ustawienia projektu trzeba było zaznaczyć EMPTY project :stuck_out_tongue_winking_eye:


(Simon1991) #4

Błąd powoduje brak linii na początku:

#include "StdAfx.h"

Koledzy, czytamy ze zrozumieniem co kompilator wywala :stuck_out_tongue:

A i tak jeszcze dodatkowo, to wg obecnych standardów main powinna zwracać int.


(Artur520) #5

dodanie

#include "StdAfx.h"

również powodowało krzaki :wink: a te zwracanie o którym pisze użytkownik simon1991nam to

int void main();

??


(Drobok) #6

Nie void = brak zwracanej wartości. Po prostu zamieniasz na int.

int main() {  //kod  return 0;[/code]

Jak już się czepiać, nie powinno się stosować getch etc.


[code=php]#include  using namespace std;int main() {

(Ryan) #7

Może troszeczkę spokojniej? Problem wynikał z tego, że projekt miał zdefiniowany prekompilowany nagłówek, a to wymaga, by każdy plik cpp go załączał przy pomocy #include. Stworzenie nowego projektu rozwiązuje problem, ale nie uczy osoby, która problem napotkała, niczego na temat jego źródła. Pisanie kodu w sposób bezrefleksyjny, używając "gotowych" rozwiązań nie jest dobrym pomysłem.


(Simon1991) #8

A czy dodawałeś to po, czy przed

#include

? :wink:

I czy błędy były te same? Może wtedy kompilatorowi chodziło o coś innego.

P.S. Kolego drobok , niech się kolega tak nie denerwuje. Chciałem tylko podać inne rozwiązanie problemu, bo jak autor utworzy kiedyś projekt i wywali StdAfx.h, to znowu będzie miał ten sam problem, a tak to będzie wiedział w czym rzecz :wink: