Ошибка компилятора C2857
Инструкция "#include", указанная параметром командной строки /Yc, не найдена в исходном файле.
Параметр /Yc указывает имя файла включения, который не включен в скомпилированный исходный файл.
Замечания
При использовании параметра /Ycfilename в исходном файле для создания предварительно скомпилированного файла заголовка (PCH) этот исходный файл должен содержать файл заголовка имени файла. Каждый файл, включенный в исходный файл, вплоть до указанного имени файла, включается в PCH-файл. В других исходных файлах, скомпилированных с помощью параметра /Yufilename для использования PCH-файла, в файле должна быть первая строка без комментариев в файле. Компилятор игнорирует что-либо в исходном файле перед этим включением.
Эта ошибка может быть вызвана инструкцией #include "filename"
в блоке условной компиляции, которая не компилируется в исходном файле PCH.
Пример
В типичном использовании один исходный файл в проекте обозначается как исходный файл PCH, а один файл заголовка используется в качестве PCH-файла заголовка. Типичный файл заголовка PCH содержит все заголовки библиотеки, используемые в проекте, но не локальные заголовки, которые по-прежнему находятся в процессе разработки. В этом примере файл заголовка PCH называется my_pch.h.
// my_pch.h
#pragma once
#include <stdio.h>
Исходный файл PCH компилируется с помощью параметра /Ycmy_pch.h . Если компилятор не находит включаемый файл заголовка PCH, он создает 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
Чтобы использовать этот PCH-файл, исходные файлы необходимо скомпилировать с помощью параметра /Yumy_pch.h . Файл заголовка PCH должен быть включен в исходные файлы, использующие 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");
}