Как вы можете различать MSYS и MSYS2 и CYGWIN, например, с помощью команды или предопределенной переменной среды?различают MSYS и MSYS2 и CYGWIN
Это различие потребует инструментов, таких как Scons, для адаптации сгенерированных командных строк, например. путем выдачи двойной обратной косой черты c:\\path\\to\\file
или обратного обхода `cygpath -w /c/path/to/file`
.
Фон: Я хотел бы использовать MSYS2 из-за его превосходного управления пакетами. Scons генерирует /c/path/to/file
на MSYS2, но csc
(компилятор Microsoft C#) допускает только пути стиля Windows.
MSYS может _allow_ вас использовать имя пути, такие как «C: \ путь \ к \ файл», но он гораздо предпочитает использовать «/ с/путь/к/файлу. Этот вопрос должен быть спорным в любом случае: при вызове любой родной инструмент, (например, C# компилятор от Microsoft), из оболочки MSYS, имя пути «/ с/путь/к/файлу» конвертируется на лету, его родной окон эквивалентно (возможно, с регулярными разделителями '/' dirname, которые _are_ действительны в именах родного пути). Я не знаю, делает ли MSYS2 то же самое - я его не использую, но я понял, что это должно было случиться. –
MSYS делает, но MSYS2 создает проблемы с 'csc' (ошибка CS1504: исходный файл не может быть открыт), вероятно, потому, что MSYS2 почти Cygwin. –
MSYS2 - независимая вилка cygwin; он не поддерживается MinGW.org (кто действительно предоставляет MSYS), по той причине, что он, похоже, полностью потерял из виду первоначальное _minimalist_ намерение MSYS, поэтому, став, как вы говорите, «почти cygwin» (так зачем беспокоиться об этом, а не просто использовать cygwin?) –