У меня есть отдельная папка для моих включений, потому что она является частью более крупного приложения, но я использую предварительно скомпилированные заголовки, чтобы сэкономить время. Однако это означает, что мне нужно 2 или более отдельных stdafx, учитывая, что я являюсь этими стандартными библиотеками в своих файлах заголовков.
Нет, это неправильно работает. Ваши собственные файлы заголовков НИКОГДА не должны ссылаться на "stdafx.h". Вместо этого они могут с уверенностью предположить, что они уже включены.
Если у вас есть несколько проектов в вашем решении, каждый в своем собственном каталоге, то каждый проект может содержать отдельный stdafx.h
без проблем.
Не уверен, что это отвечает на ваш вопрос, но вы можете щелкнуть правой кнопкой мыши по stdafx.cpp
в проводнике решений, а затем выбрать Precompiled Headers. В строке Precompiled header file вы можете ввести полный путь к stdafx.h
.
Или откройте файл проекта и после
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
вставить
<PrecompiledHeaderFile>otherDirectory\stdafx.h</PrecompiledHeaderFile>
stdafx.h
должен находиться в том же файле, что и исходный файлstdafx.cpp
. Я не помню, сколько из этих путей вы можете изменить, но вы должны иметь возможность изменить некоторые из них в настройках проекта.#include "../stdafx.h"
использовал#include "../stdafx.h"
в качестве единственной строки во вложенных файлах stdafx.h.