Я обнаружил, что могу сократить длину пути в большинстве ситуаций, в том числе в MSVC, с помощью небольшого ручного трюка с помощью команды SUBST. Я покажу и пример для сокращения унаследованных C ++ включенных путей по умолчанию, но вы сделаете это для связанных с проектом путей включения.
Сначала создайте один или несколько командных файлов, как это (и запустите их из Windows Explorer или командной строки):
MDrive.bat:
subst M: /D
subst M: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"
WDrive.bat:
subst W: /D
subst W: "C:\Program Files (x86)\Windows Kits\8.1\Include"
... This is just and example. You would do this for your
project related include directories.
Вы можете создать несколько из них для более длинных путей. В приведенном выше случае я сокращаю только стандартные унаследованные пути, которые MSVC использует по умолчанию. Кстати, команда Subst работает без прав администратора, но не наступает на существующую букву физического или подключенного диска (я не уверен, что произойдет - я не хочу проверять это в данный момент).
Этот шаг не является обязательным. Я в MSVS 2010+ добавляю свой лист свойств. Кстати, если вы не знаете о пользовательских листах свойств, вам следует. См. Страницы свойств (Visual C ++) .
VIEW-Other Окно-свойства Windows , щелкните правой кнопкой мыши проект в менеджере свойств, Добавьте новый лист свойств проекта . Под Пользовательские макросы добавьте макрос, например, MyProjectIncludePaths и установите значение (в этом примере) на
M:; M:\atlmfc\include; W:\um; W:\shared; W:\winrt
- только 49 символов в этом примере, что намного короче, чем значение по умолчанию
$(VC_IncludePath); $(WindowsSKD_IncludePath)
, который при расширении макроса переводится в
C:\Program Files (x86)\Windows Kits\8.1\Include;C:\Program Files (x86)\Windows Kits\8.1\Include\atlmfc\include;C:\Program Files (x86)\Windows Kits\8.1\Include\um;C:\Program Files (x86)\Windows Kits\8.1\Include\shared;C:\Program Files (x86)\Windows Kits\8.1\Include\winrt
По моим подсчетам значение по умолчанию составляет 270 символов - т.е. длиннее 260 символов - кто-нибудь может это объяснить?
На страницах свойств для проекта (т.е. не в списке настраиваемых свойств) в моем примере я перешел к Каталоги свойств конфигурации VC ++ и изменил Включить каталоги значение в $ (MyProjectIncludePaths) , но на практике вы можете перейти к нему (на странице страницы пользовательских свойств, если вы его создали) C / C ++ - General и добавить $ (MyProjectIncludePaths) в Дополнительные каталоги включения .
В дополнение к унаследованным 270-символьным путям я смог добавить несколько путей разумной длины в Дополнительные каталоги включения . Может быть, каталоги дополнительных включений имеют собственный предел длины (?).