Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Příkaz #include zadaný s parametrem příkazového řádku /Yc nebyl ve zdrojovém souboru nalezen.
Poznámky
Možnost /Yc určuje název zahrnutého souboru, který není součástí kompilovaného zdrojového souboru.
Pokud použijete možnost /Ycnázev souboru ve zdrojovém souboru k vytvoření předkompilovaného souboru hlavičky (PCH), musí tento zdrojový soubor obsahovat soubor hlavičky názvu souboru. Každý soubor, který je součástí zdrojového souboru, včetně zadaného názvu souboru, je součástí souboru PCH. V jiných zdrojových souborech kompilovaných pomocí možnosti /Yunázev souboru pro použití souboru PCH musí být zahrnutí názvu souboru prvním řádkem bez komentáře v souboru. Kompilátor před zahrnutím ignoruje cokoli ve zdrojovém souboru.
Příčinou této chyby může být #include "filename" příkaz v bloku podmíněné kompilace, který není zkompilován ve zdrojovém souboru PCH.
Příklad
V typickém použití je jeden zdrojový soubor v projektu označený jako zdrojový soubor PCH a jeden hlavičkový soubor se používá jako soubor hlaviček PCH. Typický soubor hlaviček PCH obsahuje všechny hlavičky knihovny používané v projektu, ale ne místní hlavičky, které jsou stále ve vývoji. V tomto příkladu má hlavičkový soubor PCH název my_pch.h.
// my_pch.h
#pragma once
#include <stdio.h>
Zdrojový soubor PCH se kompiluje pomocí možnosti /Ycmy_pch.h . Pokud kompilátor nenajde zahrnutí tohoto souboru hlaviček PCH, vygeneruje C2857:
// my_pch.cpp
// Compile by using: cl /EHsc /W4 /Yumy_pch.h /c my_pch.cpp
#if 0
#include "my_pch.h" // C2857; remove conditional directives to fix
#endif
Chcete-li použít tento soubor PCH, musí být zdrojové soubory zkompilovány pomocí možnosti /Yumy_pch.h . Soubor hlaviček PCH musí být nejprve součástí zdrojových souborů, které používají PCH:
// C2857.cpp
// Compile my_pch.cpp first, then
// compile by using: cl /EHsc /W4 /Yumy_pch.h my_project.cpp my_pch.obj
// Include the pch header before any other non-comment line
#include "my_pch.h"
int main()
{
puts("Using a precompiled header file.\n");
}