Я не думаю, что это уникально для моих проектов, это относится к любой библиотеке C ++, которая использует предварительно скомпилированные заголовки, и к проекту, который использует библиотеку, которая имеет свои собственные предварительно скомпилированные заголовки. Просто заголовки C ++ / winRt требуют СООО времени, и вам действительно нужно их предварительно скомпилировать.
У меня есть библиотека C ++ / winRT UWP. Поскольку он использует API среды выполнения Windows, он «нуждается» в прекомпиляции этих массивных заголовочных файлов. Я называю этот файл «btwrpch.h», поскольку он содержит в основном API-интерфейсы времени выполнения Bluetooth. Библиотека сборка в порядке.
Теперь эта библиотека должна использоваться в другом проекте UWP на C ++ / winRT, который также использует среды выполнения Windows, в основном пользовательский интерфейс. В предварительно скомпилированных заголовках для этого проекта используется классический pch.h.
Для использования библиотеки в проекте имеются файлы заголовков библиотеки, включая btwrpch.h. Проект имеет собственный файл pch.h.
Я не могу понять, как создать предварительно скомпилированные заголовки для обоих.
В проекте я разместил файл btwrpch.cpp и файл pch.cpp. Я настроил каждый из этих файлов cpp для генерации предварительно скомпилированных заголовков.
В параметре предварительно скомпилированного заголовка свойств проекта у меня есть два файла: pch.h; btwrpch.h и два выходных файла $ (IntDir) pch.pch; $ (IntDir) btwrpch.pch;
Все же, когда я перестраиваю проект, я получаю ошибку
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "pch.h; btwrpch.h"' to your source?
У меня есть один исходный файл (в дополнение к файлам header.cpp) с именем app.cpp, и оба заголовка включены. Заглядывая в каталог Debug, я вижу и pch.pch, и btwrpch.pch.
Что я делаю не так?
Обратите внимание, что если я объединю файл btwrpch.h с pch.h и определю только один предварительно скомпилированный заголовок, он будет работать нормально. Я не хочу, чтобы пользователь библиотеки делал это.