Jak naprawić.Brak pliku pch przy kompilacji?

Kiedy buduję moje rozwiązanie c++ w Visual Studio narzeka, że xxxxx.Brak pliku pch. Czy brakuje mi ustawienia, aby odzyskać wstępnie skompilowane nagłówki?

Oto dokładny błąd kompletności:

Error   1   fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
Author: Sam Mackrill, 2011-05-23

9 answers

Uwaga: późniejsze wersje IDE mogą używać "pch "zamiast" stdafx " w domyślnych nazwach powiązanych plików. Może być konieczne zastąpienie pch stdafx w poniższej instrukcji. Przepraszam. To nie moja wina.

  1. Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań.
  2. kliknij Właściwości u dołu rozwijanego menu.
  3. w lewym górnym rogu strony właściwości, wybierz Wszystkie konfiguracje z menu rozwijanego.
  4. Otwórz drzewo C / C++ i select Precompiled Headers
  5. Precompiled Header: Select Use (/Yu)
  6. Wypełnij wstępnie skompilowane pole pliku nagłówkowego. Standardem jest stdafx.h
  7. Kliknij OK

  8. Jeśli u pacjenta nie występuje stdafx.h w plikach nagłówkowych umieść go tam. Edytuj to #zawiera wszystkie nagłówki, które chcesz wstępnie skompilować.

  9. Umieść plik o nazwie stdafx.cpp do twojego projektu. Put # include " stdafx.h" na szczycie i nic więcej.
  10. Kliknij prawym przyciskiem myszy na stdafx.cpp w Solution Explorer. Wybierz Właściwości i wszystkie konfiguracje ponownie jak w kroku 4 ...
  11. ... ale tym razem wybierz wstępnie skompilowany nagłówek Create (/Yc). to tylko bind do jednego pliku stdafx.cpp.
  12. Put # include " stdafx.h " na samym szczycie wszystkich plików źródłowych.

Szczęśliwa 13. Trzymaj kciuki i uderz w Build.

 338
Author: Jive Dadson,
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
2018-08-19 03:43:18

Precompiled header (pch) jest procesem dwuetapowym.

W pierwszym kroku kompilujesz plik stub (w VS200x zwykle nazywa się to stdafx.cpp). Ten plik wstępny pośrednio zawiera tylko nagłówki, które chcesz wstępnie skompilować. Zazwyczaj jeden mały nagłówek (zwykle stdafx.h) zawiera standardowe nagłówki, takie jak <iostream> i <string>, a następnie jest dołączany do pliku początkowego. Skompilowanie tego tworzy .plik pch.

W Kroku 2, Twój rzeczywisty kod źródłowy zawiera ten sam mały nagłówek z kroku 1, Co pierwszy nagłówek. Kompilator, gdy napotka ten specjalny nagłówek, odczytuje odpowiedni .plik pch zamiast. Oznacza to, że nie musi (ponownie)kompilować tych standardowych nagłówków za każdym razem.

W Twoim przypadku wydaje się, że Krok 1 zawodzi. Czy plik wstępny jest nadal obecny? W Twoim przypadku byłoby to prawdopodobnie xxxxx.cpp. To musi być plik skompilowany z /Yc:xxxxx.pch, ponieważ jest to flaga kompilatora wskazująca, że jest to krok 1 procesu PCH. Jeśli xxxxx.cpp jest obecny i jest takim plikiem stub, to prawdopodobnie brak opcji kompilatora /Yc:.

 56
Author: MSalters,
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 17:45:46

Fix:

  1. Upewnij się, że masz xxxxx.cpp w Twoim projekcie

  2. Compile xxxxx.cpp with /YC flag ( Create Precompiled Header)
    (kliknij prawym przyciskiem myszy na xxxxx.cpp - > properties - > Precompiled Headers - > create)

  3. Skompiluj wszystkie inne pliki z flagą /Yu (Użyj wstępnie skompilowanego nagłówka)
    (kliknij prawym przyciskiem myszy na project - > properties -> Precompiled Headers -> use)

 18
Author: franckspike,
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-11-20 18:55:22
  1. Kliknij prawym przyciskiem myszy projekt i wybierz pozycję menu Właściwości
  2. goto C / C++ - > Precompilowane nagłówki
  3. Select Not Using Precompiled Headers
 6
Author: jpabess,
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-08-08 12:35:49

Tak można go wyeliminować za pomocą opcji / Yc, jak wskazywali inni, ale najprawdopodobniej nie trzeba go dotykać, aby to naprawić. Dlaczego otrzymujesz ten błąd w pierwszej kolejności bez zmiany żadnych ustawień? Być może "wyczyściłeś" projekt i spróbuj skompilować pojedynczy plik cpp. W takim przypadku pojawi się ten błąd, ponieważ brakuje nagłówka precompilera. Po prostu zbuduj cały projekt (nawet jeśli się nie powiedzie), a następnie zbuduj dowolny pojedynczy plik cpp i nie dostaniesz tego błąd.

 1
Author: zar,
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
2013-11-25 19:34:56

Jeśli wszystko jest w porządku, ale ten błąd jest obecny, należy sprawdzić następną sekcję w****.plik vcxproj:

<ClCompile Include="stdafx.cpp">
  <PrecompiledHeader Condition=

W moim przypadku była Niepoprawna nazwa konfiguracji: tylko pierwsze słowo.

 0
Author: Sergey ArcTechno,
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
2016-10-30 16:14:50

Wiem, że ten temat jest bardzo stary, ale miałem do czynienia z tym w VS2015 niedawno i pomogło to usunąć foldery kompilacji i ponownie je zbudować. Może się to zdarzyć z powodu próby zamknięcia programu lub wstrzymania / zamrożenia programu podczas budowania.

 0
Author: glover12,
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
2016-12-25 23:16:50

Szukałem pliku iOS PCH, który ma ten sam problem, jeśli tu tak jak ja, rozwiązanie, które znalazłem, polega na wyczyszczeniu danych pochodnych; Zamknij symulator(y), przejdź do prefs Xcode - > lokalizacje - > przejdź do ścieżki pliku danych pochodnych, Zamknij xCode, Usuń pliki w folderze danych pochodnych, uruchom ponownie i zdrówko:) {]}

 0
Author: Ahmed Awad,
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
2017-09-13 09:33:07

Spróbuj Build > Clean Solution, a następnie Build > Build Solution. To mi pasuje.

 -1
Author: Nick Dong,
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
2014-03-05 04:47:13