Wstępnie skompilowane nagłówki z mieszanym C i C++

Używam wstępnie skompilowanych nagłówków w moim projekcie w C, ale integrujemy a .Plik CPP do projektu.

Oto błąd:

Error   1   fatal error C1853: 'Debug\MuffinFactory.pch' precompiled header
file is from a previous version of the compiler, or the precompiled header is C++
 and you are using it from C (or vice versa)    
c:\users\blake\desktop\projects\muffinfactory\source\main.cpp   1
Potrzebujemy tylko jednego .CPP skompilowany w naszym projekcie, ale naprawdę potrzebujemy wstępnie skompilowanego nagłówka, aby zapisać czas kompilacji (Windows.h i więcej).

Jak zorganizować mój projekt, aby to zrobić?

Author: James Linden, 2012-01-20

4 answers

Więc nie używaj wstępnie skompilowanych nagłówków dla tego pojedynczego pliku!

Być .plik cpp, i tak będzie miał osobne opcje kompilacji.

 19
Author: Bo Persson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 22:54:31

Możesz utworzyć dwa wstępnie skompilowane nagłówki w swoim projekcie. Na każdym pliku źródłowym znajduje się właściwość określająca, czy będzie on używał wstępnie skompilowanego nagłówka, czy też generował wstępnie skompilowany nagłówek - spróbuj ustawić dwa różne źródła, aby wygenerować nagłówek.

 5
Author: Mark Ransom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 22:41:02

Spróbuj utworzyć oddzielny wstępnie skompilowany plik nagłówkowy C++ (powiedzmy MuffinFactoryCpp.h, który jest kopią tego drugiego). Spójrz na ustawienia projektu pod "wstępnie skompilowane nagłówki" i użyj tego nowego pliku nagłówka jako wstępnie skompilowanego nagłówka dla pliku źródłowego C++.

 1
Author: zdan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 22:43:53

Właśnie sprawdziłem błąd tutaj i znalazłem ten wątek. Jednak metodą prób i błędów odkryłem, że problem polegał na tym, że nie mam ostatnio wszystkich plików zapisanych. Wydaje się, że Visual Studio jest trochę wybredny w kwestii dat zapisywania plików, które są dołączane razem.

Chodziłem w kółko wciskając Ctrl + S na wszystkich plikach źródłowych i to naprawiło problem.

 0
Author: Brandon Nolet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-11 02:13:09