Я работаю над новой конфигурацией решения для нашего большого проекта VC++ с использованием VS 2008. Я бы хотел, чтобы эта конфигурация использовала флаг многоядерной сборки / МП.
Однако функция "#import" для создания классов-оболочек COM присутствует во всей кодовой базе, и эта функция не поддерживается при использовании / MP.
Я понимаю, почему #import не работает, Я хочу знать, сталкивался ли кто-нибудь с этой проблемой и как они ее решали?
Я делаю следующее:
Мне любопытно, есть ли у кого-нибудь любые другие предложения?. Также на последняя точка (создание нового проекта и использование #import только там) - если вы сделали что-то вроде этого, как ты это сделал? Какой тип проекта, как выглядел "исходник", где был вы выводите файлы? Как вы их включили? (вы знаете, думайте за меня!)
Спасибо за комментарий. Оказывается, мне понадобится несколько этапов генерации tlh на разных этапах сборки (почти безнадежная битва). Я отложил это - моя текущая задача - отказаться от VSS.
Вот ваш ответ stackoverflow.com/questions/650578/…





У меня есть проект с двумя исходными файлами, которые # импортируют один и тот же файл. При компиляции с / MP иногда возникала ошибка отказа в доступе, поскольку оба исходных файла пытались создать .tlb одновременно. Я исправляю это, включив предварительно скомпилированные заголовки и добавив #import в исходный файл предварительно скомпилированных заголовков.
Это сработало для меня. Не уверен, есть ли недостатки, но пока я доволен. Спасибо.
Вы можете использовать параметр / MP для всего проекта, а затем сделать исключение для отдельного файла с помощью параметра / MP1.
В VS 2017 просто отключите / MP для файлов, содержащих #imports
ваш последний вариант кажется лучшим способом сделать это, если вам нужны многоядерные сборки - он согласован и не тратит впустую работу. Извините, что я не могу помочь с подробностями об этом,