msbuild не может найти предварительно скомпилированный заголовок - PullRequest
0 голосов
/ 25 октября 2018

У меня есть dll, который я строю, используя msbuild с командой msbuild dll.vcxproj /p:Configuration=Debug, и это зависит от статического lib.Мои lib имеют stdafx.h и stdafx.cpp, и они находятся в разных папках.

Я использую /Yc (создать) для stdafx.cpp и /Yu (использовать) для остальной части lib.Однако я получил ошибку - fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory [lib path.vcxproj].

В моих настройках проекта (Visual Studio 2017) и lib, и dll содержат пути к stdafx.h и stdafx.cpp.Я попытался указать путь для создания предварительно скомпилированного заголовка в свойствах stdafx.cpp, но я получил другую ошибку - C2857: '#include' statement specified with the /Ycstdafx.h command-line option was not found in the source file stdafx.cpp.

Я также пытался включить использование относительного пути (то есть #include "../path/stdafx.h") вместо просто #include "stdafx.h" внутри stdafx.cpp в lib, но я получил ту же ошибку.

Редактировать: Так как мои заголовочные и исходные файлы разделены на разные папки, я попытался переместить stdafx.h в папку stdafx.cpp, и теперь компилятор может найти stdafx.h, но у меня есть другая ошибка, что моя другая .h файлы, включенные в stdafx.h, не найдены.Это означает, что проблема будет решена, если я объединю свои заголовки и исходные файлы в одну папку, но я хочу, чтобы они были разделены.Есть ли способ указать путь к stdafx.h, кроме методов, которые я пробовал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...