предварительно скомпилированные заголовочные файлы .pch чувствительны к компьютеру? - PullRequest
1 голос
/ 08 апреля 2010

Я попытался повторно использовать .pch для ускорения сборки следующим образом:

  1. используйте / Yc на stdafx.cpp для создания файлов .pch в папку
  2. исключить stdafx.cpp в проекте и изменить параметр ссылки

Это успешно на моем компьютере, но не удалось на другом, получил сообщение об ошибке: ошибка C2011: '***': 'struct'Переопределение типа

Итак, сначала я хочу спросить, являются ли файлы .pch чувствительными к компьютеру?тогда во-вторых, вышеперечисленные подходы работоспособны?

Спасибо!

1 Ответ

3 голосов
/ 08 апреля 2010

Предварительно скомпилированные заголовки могут быть привязаны к конкретной машине вплоть до Visual Studio 2008 SP1 (от здесь ):

Файлы скомпилированных заголовков хранят «состояние» компиляции до определенногои эта информация о состоянии может быть повторно использована в последующих вызовах компилятора, чтобы значительно увеличить пропускную способность сборки.За последние 15 лет наш компилятор сохранил предварительно скомпилированные заголовки на диск и перегрузил их непосредственно в виртуальную память с надежностью 99,999% и значительным приростом производительности.Однако компромисс в нашей архитектуре был хрупким.

Поскольку сам файл PCH содержит внутренние указатели, он должен быть загружен по тому же адресу в виртуальной памяти, где он был создан .

...