Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Instrukcja "#include" określona z opcją wiersza polecenia /Ycnazwa_pliku nie została znaleziona w pliku źródłowym
Uwagi
/Yc opcja określa nazwę pliku dołączania, który nie jest uwzględniony w skompilowanym pliku źródłowym.
Jeśli używasz opcji /Ycnazwy pliku źródłowego do utworzenia pliku prekompilowanego nagłówka (PCH), ten plik źródłowy musi zawierać plik nagłówka nazwy pliku. Każdy plik dołączony przez plik źródłowy, maksymalnie do określonej nazwy pliku, jest uwzględniony w pliku PCH. W innych plikach źródłowych skompilowanych przy użyciu opcji /Yunazwa pliku do korzystania z pliku PCH, nazwa pliku musi być pierwszym wierszem innym niż komentarz w pliku. Kompilator ignoruje wszystkie elementy w pliku źródłowym przed dołączeniem.
Ten błąd może być spowodowany przez instrukcję #include "filename" w bloku kompilacji warunkowej, który nie jest kompilowany w pliku źródłowym PCH.
Przykład
W typowym użyciu jeden plik źródłowy w projekcie jest wyznaczony jako plik źródłowy PCH, a jeden plik nagłówkowy jest używany jako plik nagłówkowy PCH. Typowy plik nagłówka PCH zawiera wszystkie nagłówki bibliotek używane w projekcie, ale nie lokalne nagłówki, które są nadal opracowywane. W tym przykładzie plik nagłówka PCH nosi nazwę my_pch.h.
// my_pch.h
#pragma once
#include <stdio.h>
Plik źródłowy PCH jest kompilowany przy użyciu opcji /Ycmy_pch.h . Jeśli kompilator nie znajdzie dołączania tego pliku nagłówka PCH, generuje 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
Aby użyć tego pliku PCH, pliki źródłowe muszą być skompilowane przy użyciu opcji /Yumy_pch.h . Plik nagłówka PCH musi być najpierw uwzględniony w plikach źródłowych korzystających z 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");
}