Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
msys2_mingw [2022/09/28 10:59] – [Консольные полноэкранные приложения] adminmsys2_mingw [2023/12/12 10:59] – [Введение] admin
Line 4: Line 4:
 ==== Введение ==== ==== Введение ====
  
-В целях ретрокомпьютинга иногда возникает желание "что-нибудь скомпилировать под 32-битный Windows". Ага, ага. Вот и у меня однажды возникала +В целях ретрокомпьютинга иногда возникает необходимость "что-нибудь скомпилировать под 32-битный Windows" с минимальными затратами. Ага, ага. Вот и у меня однажды возникала 
-такая же ситуация. Когда-то давно мне довелось пользоваться компилятором **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]** и оболочкой **MSYS**, так что я попробовал снова их найти и установить. Оказалось, что там "всё не так, как раньше". +такая же ситуация. Когда-то давно я пользовался компилятором **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]** и оболочкой **MSYS**, так что я попробовал снова их найти и установить. Оказалось, что там "всё не так, как раньше". Вобщем, сейчас ситуация такая: "простой" MinGW и "классический" MSYS обновляться перестали и они зачахли где-то в районе 2015 года.
-Вобщем, сейчас ситуация такая: "простой" MinGW и "классический" MSYS обновляться перестали +
-и они зачахли где-то в районе 2015 года.+
  
-**ПРИМЕЧАНИЕ:** Надеюсь, читатели понимают разницу между **[[https://ru.wikipedia.org/wiki/Cygwin|Cygwin]]** и **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]**. Кратко: **Cygwin** пытается воссоздать наиболее полную "среду" UNIX/POSIX на Windowsсо всеми её фишками, типа //fork()//, особенностями файловой системы, сигналами, псевдотерминалами и т.д. в то время как **Mingw** - это (изначально) просто перенос компилятора **GCC** на Windows, без вот этого всего. А **MSYS** - это "оболочка", то есть набор утилит __для сборки__, главные из которых - пожалуй ''make'' и ''bash''. [[https://www.msys2.org/wiki/How-does-MSYS2-differ-from-Cygwin/|Подробности]]. +Дак вот, оказывается, нынче текущая версия **MSYS** - это **[[https://www.msys2.org/|MSYS2]]**. Это такой странный гибрид 
- +из **Cygwin** и старого **MSYS**. Что там нового ? Подобно **Cygwin** он делает замену путей в стиле UNIX, маскирует расширение *.exe, 
-Оказывается, нынче текущая версия **MSYS** - это **[[https://www.msys2.org/|MSYS2]]**. Это такой странный гибрид +поддерживает псевдотерминалы, UNIX-сигналы и еще много чего. Это, с одной стороны, облегчает процесс сборки
-из **Cygwin** и старого **MSYS**. +
-Подобно **Cygwin** он делает замену путей в стиле UNIX, маскирует расширение *.exe, +
-поддерживает псевдотерминалы, UNIX-сигналы и еще много чего. Это, с одной стороны, облегчает перенос и сборку+
 всяких нетривиальных UNIX программ, а с другой стороны, теперь все msys-программы, в отличии от старого **MSYS** тянут за собой всяких нетривиальных UNIX программ, а с другой стороны, теперь все msys-программы, в отличии от старого **MSYS** тянут за собой
 DLL-ку: ''msys-2.0.dll'' . DLL-ку: ''msys-2.0.dll'' .
Line 33: Line 28:
 ключиком. По-умолчанию запускается **Mintty**. ключиком. По-умолчанию запускается **Mintty**.
  
-Да, сама **MSYS2** тоже бывает 32-битная и 64-битная. К счастью на сайте **MSYS2** [[https://repo.msys2.org/distrib/|есть]] нужный инсталлятор,+**ПРИМЕЧАНИЕ:** Надеюсь, читатели понимают разницу между **[[https://ru.wikipedia.org/wiki/Cygwin|Cygwin]]** и **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]**. Кратко: **Cygwin** пытается воссоздать наиболее полную "среду" UNIX/POSIX на Windows, со всеми её фишками, типа //fork()//, особенностями файловой системы, сигналами, псевдотерминалами и т.д. в то время как **Mingw** - это (изначально) просто перенос компилятора **GCC** на Windows, без вот этого всего. А **MSYS** - это "оболочка", то есть набор утилит __для сборки__, главные из которых - пожалуй ''make'' и ''bash''. [[https://www.msys2.org/wiki/How-does-MSYS2-differ-from-Cygwin/|Подробности]]. Надо добавить, что вся эта магия имеется только в среде **MSYS2**, а полученная программа билдится с MSVCRT.DLL и большинство этих фишек не поддерживает. 
 + 
 +Да, надо даобавить, что сама по себе **MSYS2** тоже бывает 64-битная и 32-битная (была). К счастью на сайте **MSYS2** [[https://repo.msys2.org/distrib/|есть]] нужный инсталлятор,
 (''msys2-x86_64'' или ''msys2-i686'') - это такой огромный файл .EXE, у которого внутри целый архив соответствующих программ. (''msys2-x86_64'' или ''msys2-i686'') - это такой огромный файл .EXE, у которого внутри целый архив соответствующих программ.
 **MSYS2** 64-битная по умолчанию ставится в ''C:\msys64'', а 32-битная - в ''C:\msys32''. Можете попробовать поменять каталог, **MSYS2** 64-битная по умолчанию ставится в ''C:\msys64'', а 32-битная - в ''C:\msys32''. Можете попробовать поменять каталог,
-но тогда никто ничего не гарантирует... Но вот беда - инсталлятор старый и первое, что нужно сделать - +но тогда никто ничего не гарантирует... Но вот беда - инсталлятор старый и первое, что нужно сделать - это обновиться командой: ''pacman -Syuu''
-это обновиться: ''pacman -Syuu''+
 Этот ''pacman'' первым делом обновит сам себя, так что ОБЯЗАТЕЛЬНО надо прибить всё окно! НЕ выходя!!! Этот ''pacman'' первым делом обновит сам себя, так что ОБЯЗАТЕЛЬНО надо прибить всё окно! НЕ выходя!!!
 И запустить ''pacman -Syuu'' еще раз. И запустить ''pacman -Syuu'' еще раз.
Line 43: Line 39:
 Вы еще тут ? Я еще держусь, но с трудом... :) Вы еще тут ? Я еще держусь, но с трудом... :)
  
-**ПРИМЕЧАНИЕ:** С мая 2020 32-битную **MSYS2** стали [[https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported|потихоньку сворачивать]]. Она еще поддерживается, но пакеты для нее выходят крайне редко, а начальный инсталлятор для 32-битной версии **MSYS2** убрали с главной стравницы [[http://repo.msys2.org/distrib/i686/|сюда]]. Следите за [[https://www.msys2.org/news/|новостями]]. Таким образом, даже для сборки 32-битных приложений нужно использовать 64-битную ОС и 64-битную ''MSYS2''. Увы.+**ПРИМЕЧАНИЕ:** С мая 2020 32-битную **MSYS2** стали [[https://www.msys2.org/news/#2020-05-17-32-bit-msys2-no-longer-actively-supported|потихоньку сворачивать]]. Она еще поддерживается, но пакеты для нее выходят крайне редко, а начальный инсталлятор для 32-битной версии **MSYS2** убрали с главной стравницы [[http://repo.msys2.org/distrib/i686/|сюда]]. Следите за [[https://www.msys2.org/news/|новостями]]. Таким образом, даже для сборки 32-битных приложений нужно использовать 64-битную ОС и 64-битную ''MSYS2''. Этакая кросс-система. Увы. 
 + 
 +[[https://www.msys2.org/news/#2022-04-06-windows-7-8-support-will-be-dropped-late-2022-or-early-2023|2022-04-06 - Windows 7 / 8 support will be dropped late 2022 or early 2023]]
  
 +[[https://www.msys2.org/news/#2023-01-15-dropping-support-for-windows-7-and-80|Dropping support for Windows 7 and 8.0]]
  
 ==== Компилятор и его запуск ==== ==== Компилятор и его запуск ====
Navigation