Совместное использование / YC и / MP в проекте Visual Studio 10

Я пытаюсь обойти ограничение взаимоисключающих / YC и / MP. Я хотел бы использовать предварительно скомпилированные заголовки и многопроцессную компиляцию.

До сих пор я отвечал, что нужно создать 2 проекта вместо 1. Первый — это библиотека, генерирующая pch, состоящая только из stdafx.h и stdafx.cpp. Он генерирует файл pch с / YC, установленным в stdafx.cpp

Эта библиотека успешно генерирует файл pch! В качестве примечания, в проекте библиотеки pch также указано / YU, указывающее на его stdafx.h и / Fp, ссылающееся на выходной файл pch.

Мой второй проект — мой основной исполняемый файл. В нем указана / MP, но не указана / YC ни для одного файла, и он не содержит stdafx.h или stdafx.cpp. Вместо этого я установил / YU проекта в stdafx.h библиотеки pch и / Fp в pch, сгенерированный библиотекой pch. Затем я установил библиотеку pch в качестве зависимости проекта exe. Я также установил / FI в проекте exe, чтобы принудительно включать stdafx.h из библиотеки pch в каждый модуль компиляции.

Моя проблема в том, что, хотя библиотека pch генерирует файл pch, а exe-проект, похоже, правильно ссылается на сгенерированный файл pch, как только exe-проект начинает сборку (после некоторых шагов предварительной сборки, не связанных с pch), УДАЛЯЕТ pch, сгенерированный библиотекой pch. Я предполагаю, что это потому, что он думает, с указанием / Fp, что проект сгенерирует этот файл, даже если не указано / YC.

Здесь я что-то не так делаю? Я пропускаю шаг. Есть ли способ предотвратить проект exe от удаления моего файла pch, прежде чем он начнет сборку?

Любая помощь будет принята с благодарностью!

4

Решение

Попробуй это: Проверяет ли Visual C ++ необходимость повторной генерации своего pch, если я использую / Yc

Вы в основном устанавливаете / Yc для stdafx.cpp и / Yu + / MP для всех остальных файлов * .cpp.

Чтобы установить отдельные флаги для каждого файла, щелкните правой кнопкой мыши файл cpp в обозревателе решений и выберите «Свойства».

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]