Я часто сталкиваюсь с проблемами при получении Visual Studio для поиска моих заголовков, и я думаю, что, возможно, наконец-то выяснил, почему: кажется, что Visual Studio не понимает несколько относительных каталогов в конфигурациях проекта, например:
Когда этот каталог, безусловно, существует.
Мой вопрос: может ли кто-нибудь подтвердить, что это так, и если да, есть ли причина, по которой он это сделал? Это ошибка или преднамеренное?
Публикация в качестве ответа, поскольку я не могу вписать это в комментарий, хотя его немного осуждают …
Самый простой способ отладки — запустить Process Monitor из Вот, и добавьте фильтр, чтобы показать только доступ к вашему имени файла. Я сделал пример проекта C ++, который пытался загрузить несуществующий заголовок #include "Bobby.h"
а затем добавил следующий фильтр в Process Monitor:
Path Contains Bobby.h Include
Затем я запустил сборку и получил следующий вывод:
CreateFile C:\Users\MyUserName\Documents\Visual Studio 2012\Projects\ConsoleApplication2\ConsoleApplication2\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\um\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\shared\Bobby.h NAME NOT FOUND
CreateFile C:\Program Files (x86)\Windows Kits\8.0\Include\WinRT\Bobby.h NAME NOT FOUND
Из этого вывода вы можете легко увидеть, где компилятор искал заголовочный файл — он может быть достаточно хорош, чтобы помочь вам понять, почему он не нашел его.
НТН