Использование предварительно скомпилированного заголовка (pch) представляет собой двухэтапный процесс.
На первом этапе вы компилируете файл-заглушку (в VS200x он обычно называется stdafx.cpp
. Используются более новые версии pch.cpp
.). Этот стаб-файл косвенно включает в себя только те заголовки, которые вы хотите предварительно скомпилировать. Как правило, один маленький заголовок (обычно stdafx.h
или pch.hpp
) перечисляет стандартные заголовки, такие как <iostream>
и <string>
, и это затем включается в файл-заглушку. Компиляция этого создает файл .pch.
На шаге 2 ваш фактический исходный код содержит тот же маленький заголовок, что и на шаге 1, что и первый заголовок. Когда компилятор встречает этот специальный заголовок, компилятор читает соответствующий файл .pch. Это означает, что нет необходимости (пере) компилировать эти стандартные заголовки каждый раз.
В вашем случае кажется, что шаг 1 не выполняется. Заглушка все еще присутствует? В вашем случае это, вероятно, будет xxxxx.cpp
. Это должен быть файл, который скомпилирован /Yc:xxxxx.pch
, так как это флаг компилятора, указывающий, что это шаг 1 процесса PCH. Если xxxxx.cpp
он присутствует и является таким файлом-заглушкой, то, вероятно, ему не хватает /Yc:
опции компилятора.