Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az /Ycfájlnév parancssori beállítással megadott "#include" utasítás nem található a forrásfájlban
Megjegyzések
Az /Yc beállítás egy olyan belefoglalási fájl nevét adja meg, amely nem szerepel a lefordított forrásfájlban.
Ha egy forrásfájl /Ycfájlnév beállításával hoz létre előre összeállított fejlécfájlt (PCH), a forrásfájlnak tartalmaznia kell a fájlnév fejlécfájlját. A forrásfájl által tartalmazott összes fájl, beleértve a megadott fájlnév is, szerepel a PCH-fájlban. Más forrásfájlokban, amelyeket a /Yufájlnév beállítással fordítottak a PCH-fájl használatára, a fájlnév beiktatásának a fájl első nem megjegyzés sorában kell lennie. A fordító figyelmen kívül hagy mindent a forrásfájlban az include utasítás előtt.
Ezt a hibát okozhatja egy #include "filename" olyan feltételes fordítási blokkban lévő utasítás, amely nem a PCH-forrásfájlban van lefordítva.
Example
Általában a projektben egy forrásfájl van kijelölve PCH-forrásfájlként, egy fejlécfájl pedig a PCH-fejlécfájlként. Egy tipikus PCH-fejlécfájl tartalmazza a projektben használt összes kódtárfejlécet, de a fejlesztés alatt álló helyi fejléceket nem. Ebben a példában a PCH fejlécfájl neve my_pch.h.
// my_pch.h
#pragma once
#include <stdio.h>
A PCH-forrásfájl fordítása az /Ycmy_pch.h lehetőséggel történik. Ha a fordító nem talál beillesztést erre a PCH-fejlécfájlra, akkor C2857-et hoz létre:
// 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
A PCH-fájl használatához a forrásfájlokat a /Yumy_pch.h beállítással kell lefordítani. A PCH fejlécfájlt először a PCH-t használó forrásfájlokban kell szerepeltetni:
// 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");
}