Msvs и максимальная длина строки

Блин, на дворе XXI век, а вижуалка до сих пор ругается что длина строки в путях должна быть меньше двух сотен символов - нет слов, одни эмоции.

Может кто сталкивался с такой проблемой.

При попытки компиляции кастом-билда сгенереного cmake для вижуалки через команду (add_custom_target)

вижулка в лог пишет следующее

Quote:

Build started 08.12.2011 2:17:18.
     1>Project "E:\_b64\src\spheresprog\spproto\I_SPPROTO.vcxproj" on node 3 (build target(s)).
     1>InitializeBuildStatus:
         Creating "x64\Debug\I_SPPROTO\I_SPPROTO.unsuccessfulbuild" because "AlwaysCreate" was specified.
     1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6003: The specified task executable "cmd.exe" could not be run. The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
     1>Done Building Project "E:\_b64\src\spheresprog\spproto\I_SPPROTO.vcxproj" (build target(s)) -- FAILED.

Build FAILED.

Time Elapsed 00:00:00.01

Гугл по этому поводу молчит как партизан. Уровень уважения мелкомягких к пользователю тоже поражает - понять какая строка и где привывашает необходимый лимит просто анриал по информативности сообщений.

Последняя правка: чт, 08/12/2011 - 01:38
Submitted by Victor on

Комментарии

Это еще что... Вот когда я впервые ставил Android SDK etc., так там было еще круче: пробелы в пути - не допускаются, русские символы в пути - не допускаются. Когда я до этого дошел( не без помощи гугла и такой-то матери), и все наконец-таки поставил, то все равно не смог запустить эмулятор андроида :). Оказалось он хранит настройки в папке пользователя, а пользователь у меня в винде в то время был простой-  "Администратор", ну соответственно и путь к папке опять таки содержал русские буквы.... Короче из приличных слов только предлоги остались... С тех пор пути, пользователей и т.д. стараюсь делать покороче, и обязательно на инглише. А как хотелось поверить, что все эти проблемы канули в небытие вместе с ДОСом! Не тут-то было.

Submitted by DekaSoft on
Victor wrote:

Гугл по этому поводу молчит как партизан. Уровень уважения мелкомягких к пользователю тоже поражает - понять какая строка и где привывашает необходимый лимит просто анриал по информативности сообщений.

http://msdn.microsoft.com/en-us/library/x8zx72cd.aspx  - читаем в самом низу.

Submitted by MaxImuS on
DekaSoft wrote:

Это еще что... Вот когда я впервые ставил Android SDK etc., 

Если мне не изменяет память, а иногда так бывает, то все работало прекрасно даже с кирилицой в путях. Вся проблема, возникшая тогда, это конфликт эклипса и последней jdk, пришлось откатывать на предыдущую версию (потом вроде этот косяк исправили). На счет путей уточню, когда окажусь дома.

 

Submitted by MaxImuS on

В винде до сих пор есть лимит на максимальную длину ком.строки (В 2000/ХР это было около 2000 символов и напрягало конкретно), поэтому сгенерённые батники запускаемые через cmd.exe могут не работать (в сложных/паталогических случаях, когда МНОГО файлов и длинные пути). Т.е. проблема это не визуала и даже не виндовса, а cmd.exe -- shell в досе/виндосе достаточно убог всегда был.

Что касается пробелов и не-анси символов в иенах файлов/каталогов, то за это ИМХО тупо нужно бить металлической линейкой по пальцам -- всем потом проще будет. Реально такие имена файлов/каталогов нафиг не нужны, а проблемы создают разнообразные, особенно для билд-систем.

Submitted by BLK Dragon on
MaxImuS wrote:

http://msdn.microsoft.com/en-us/library/x8zx72cd.aspx  - читаем в самом низу.

Cпасибо, но это не мой случай - в тексе по ссылке речь идет немного о другой ошибке. Да и WorkingDirectory у меня в дефолтном значении $(ProjectDir) и пробелов в путях нет.

Submitted by Victor on

GameDev.by