У меня есть единица a.cpp, которая используется в нескольких проектах в подкаталоге libA
. Некоторые из проектов используют предварительно скомпилированные заголовки, в то время как другие - не. В этом случае проекты, использующие прекомпилированный заголовок должен иметь строку:Разница между <stdafx.h> и "stdafx.h"
#include <stdafx.h>
и проекты, которые не используют PCH, должны иметь строку:
#include "..\stdafx.h"
Мудрый стих не работает.
Почему проект видит файл stdafx.h по-разному, когда проект использует PCH или нет?
UPD.
Когда я заменить строку #include <stdafx.h>
с #include "..\stdafx.h"
в проекте, который использует прекомпилированный заголовок у меня есть ошибка
Error 19 error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
Структура каталогов одинакова в обоих проектах.
Другое решение: поместите a.cpp в библиотеку или DLL для повторного использования. Тогда вам не нужно беспокоиться о прекомпилированных различиях заголовков. – crashmstr
Это может быть решение, но я ленив, чтобы перекомпилировать библиотеки в отдельный проект каждый раз, когда я их изменяю. И это не приятно :) – vico
Добавьте библиотеку или проект DLL в свои другие решения и добавьте зависимость. Как только он настроен, дополнительной работы не требуется! Это мило. Повторный код принадлежит библиотекам или DLL. – crashmstr