2013-07-28 5 views
13

Z tego co wiem, stdafx.h jest wstępnie skompilowanym plikiem nagłówkowym i służy do szybszego kompilowania w visual studio. Kiedy tworzę projekt C++ w visual studio 2012, istnieje również stdafx.cpp. Czy ktoś może wyjaśnić związek między stdafx.h a stdafx.cpp?Co to jest plik stdafx.cpp tworzony automatycznie w nowym projekcie C++ w visual studio 2012

+0

Odpowiedziałeś na własne pytanie wcześniej. – Rapptz

+0

oraz jaka jest funkcja stdafx.cpp? – rage

+8

Nie możesz skompilować plików .h, potrzebujesz pliku .cpp, aby go skompilować. Więc jest to skompilowany plik; 'stdafx.cpp' zawiera wszystkie nagłówki, które chcesz skompilować i kompiluje je. Możesz przeczytać więcej [tutaj] (http://stackoverflow.com/questions/1552058/how-to-implement-precompiled-headers-into-your-project) – Rapptz

Odpowiedz

24

Wstępnie skompilowane nagłówki mogą znacznie przyspieszyć kompilację plików .cpp w projekcie. Zgodnie z konwencją jest to stdafx.h, który # obejmuje wszystkie pliki .h, które mają być prekompilowane. Można nazwać to, co chcesz, ale po prostu wybiera szablon projektu stdafx.h

Ale zanim to może działać, musi istnieć jeden plik .cpp że właczoną stdafx.h i pobiera skompilowany pierwszy. Przed wszystkimi innymi plikami .cpp w twoim projekcie. Gdy to zrobisz, kompilator może użyć utworzonego pliku .pch i szybko skompilować wszystkie inne pliki .cpp, nie będąc już dłużej #włączać nagłówków.

Stdafx.cpp to jeden plik .cpp. Ma ustawienie, które różni się od wszystkich innych plików .cpp, zostaje zbudowane with /Yc. Opcja "Utwórz skompilowany plik nagłówkowy".

Powiązane problemy