2013-04-13 6 views
3

У меня смешанный проект C++ (управляемый и неуправляемый). Неуправляемый использует множество библиотек, таких как boost. Все они включены в файл stdafx.h. Я пытаюсь иметь два отдельных предварительно скомпилированных заголовка, один управляемый (stdafx.h) и один для неуправляемого (stdafxManaged.h). Как всегда, когда я включаю stdafxManaged.h из моего управляемого кода я получаю сообщение об ошибке сказав:Как использовать два предварительно скомпилированных заголовка. Один для управляемого и один для неуправляемого кода. xxx.pch не является допустимым прекомпилированным файлом заголовка

error C2855: command-line option '/clr' inconsistent with precompiled header

Так я поворачиваю Common Language Runtime Support (/ CLR) на для stdasfManaged.cpp и получить следующее сообщение об ошибке :

error C1852: 'Debug\xxx.pch' is not a valid precompiled header file

Где ххх название проекта, и это показывает, как ошибка для всех неуправляемых .cpp файлов в проекте.

Кто-нибудь знает, как исправить эту ошибку или иметь какую-либо ссылку на учебник, в котором рассказывается, как настроить несколько предварительно скомпилированных заголовков для смешанного кода?

+1

Насколько я знаю, несколько предварительно скомпилированных заголовков не поддерживаются. –

+0

Если это так, то Ill очень раздражает, но я думаю, это объясняло бы конфликт .pch-файла. Вы знаете, где я могу найти более подробную информацию об этом? –

ответ

1

Это действительно возможно. Убедитесь, что/clr активен для файла .cpp, и как предварительно скомпилированный файл заголовка, так и прекомпилированные параметры выходного файла заголовка отличаются от обычных stdafx.h и $ (TargetName) .pch.