Я часто обнаруживаю, что у меня проблемы с визуальной студией, чтобы найти заголовки, и я думаю, что, возможно, наконец-то выяснил, почему: кажется, что визуальная студия не понимает несколько относительных каталогов в конфигурациях проектов, например:
Когда этот каталог, безусловно, существует.
Мой вопрос: может ли кто-нибудь подтвердить, что это так, и если да, то есть причина, почему они это сделают? Это ошибка или умышленное?
Проводка в качестве ответа, поскольку я не могу поместить это в комментарий, хотя его немного нахмурило...
Самый простой способ отладить это - запустить 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
Из этого вывода вы можете легко увидеть, где компилятор искал файл заголовка. Он может быть достаточно хорош, чтобы помочь вам понять, почему он не нашел его.
НТН
$(ProjectDir)
заканчивается с ``?