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 [2020/07/30 15:01] – [Введение] adminmsys2_mingw [2022/02/01 01:05] admin
Line 4: Line 4:
 ==== Введение ==== ==== Введение ====
  
-Иногда возникает желание "что-нибудь скомпилировать под Windows". Ага, ага. Вот и у меня однажды возникала +В целях ретрокомпьютинга иногда возникает желание "что-нибудь скомпилировать под 32-битный Windows". Ага, ага. Вот и у меня однажды возникала 
-такая же ситуация. Когда-то давно мне довелось пользоваться компилятором **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]** и оболочкой **MSYS**, так что я попробовал их найти и установить. Оказалось, что там "всё не так, как раньше".+такая же ситуация. Когда-то мне довелось пользоваться компилятором **[[https://ru.wikipedia.org/wiki/MinGW|Mingw]]** и оболочкой **MSYS**, так что я попробовал их найти и установить. Оказалось, что там "всё не так, как раньше".
 Вобщем, сейчас ситуация такая: "простой" MinGW и "классический" MSYS обновляться перестали Вобщем, сейчас ситуация такая: "простой" MinGW и "классический" MSYS обновляться перестали
 и они зачахли где-то в районе 2015. и они зачахли где-то в районе 2015.
Line 11: Line 11:
 **ПРИМЕЧАНИЕ:** Надеюсь, читатели понимают разницу между **[[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://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-from-Cygwin|Подробности]]. **ПРИМЕЧАНИЕ:** Надеюсь, читатели понимают разницу между **[[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://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-from-Cygwin|Подробности]].
  
-Текущая версия **MSYS** - это **[[https://www.msys2.org/|MSYS2]]**. Это такой странный гибрид+Оказывается, нынче текущая версия **MSYS** - это **[[https://www.msys2.org/|MSYS2]]**. Это такой странный гибрид
 из **Cygwin** и старого **MSYS**. из **Cygwin** и старого **MSYS**.
 Подобно **Cygwin** он делает замену путей в стиле UNIX, маскирует расширение *.exe, Подобно **Cygwin** он делает замену путей в стиле UNIX, маскирует расширение *.exe,
 поддерживает псевдотерминалы, UNIX-сигналы и еще много чего. Это, с одной стороны, облегчает перенос и build-инг поддерживает псевдотерминалы, UNIX-сигналы и еще много чего. Это, с одной стороны, облегчает перенос и build-инг
-всяких нетривиальных UNIX программ, с другой стороны, все msys-программы теперь тянут за собой+всяких нетривиальных UNIX программ, а с другой стороны, все msys-программы, в отличии от старого **MSYS** теперь тянут за собой
 DLL-ку: ''msys-2.0.dll'' . DLL-ку: ''msys-2.0.dll'' .
  
-Компилятор с тулзами теперь называется **[[http://mingw-w64.org/|Mingw-w64]]**. Это вовсе не значит, что он 64-битный, +А компилятор с тулзами нынче называется **[[http://mingw-w64.org/|Mingw-w64]]**. Это вовсе не значит, что он 64-битный, 
-это просто __такое имя__. Он существует во всех возможных комбинациях: 32-битный (т.е. работающий на 32-бит винде)+это просто __такое имя__. Он существует во всех возможных комбинациях: 32-битный (т.е. работающий на 32-бит Windows)
 для билда 32-битных программ, 64-битный для билдинга 64-битных программ, и все промежуточные для билда 32-битных программ, 64-битный для билдинга 64-битных программ, и все промежуточные
 варианты, то есть 32-битный для построения 64-битных и наоборот, 64-битный для 32-бит. варианты, то есть 32-битный для построения 64-битных и наоборот, 64-битный для 32-бит.
Line 25: Line 25:
 Вы еще не запутались ? Держитесь, это только начало... :) Вы еще не запутались ? Держитесь, это только начало... :)
  
-**MSYS2** теперь поддерживает два вида терминалов (т.е. тула для отрисовки) - один новомодный **[[https://en.wikipedia.org/wiki/Mintty|Mintty]]**,+**MSYS2** теперь поддерживает два вида терминалов (т.е. программ для отрисовки "текстового" экрана) - один новомодный **[[https://en.wikipedia.org/wiki/Mintty|Mintty]]**,
 утащенный с того же **Cygwin**, который типа лучше поддерживает механизмы терминала UNIX, но опять утащенный с того же **Cygwin**, который типа лучше поддерживает механизмы терминала UNIX, но опять
 же, тянет за собой всякое... Другой - почти классическая Windows консоль почти без обвеса (**[[https://ru.wikipedia.org/wiki/ConEmu|ConEmu]]**) же, тянет за собой всякое... Другой - почти классическая Windows консоль почти без обвеса (**[[https://ru.wikipedia.org/wiki/ConEmu|ConEmu]]**)
Line 41: Line 41:
 И запустить ''pacman -Syuu'' еще раз. И запустить ''pacman -Syuu'' еще раз.
  
-**ПРИМЕЧАНИЕ:** Где-то с июня 2020 похоже 32-битную **MSYS2** стали потихоньку сворачивать. Она все еще поддерживается, пакеты для нее выходят, но начальный инсталлятор для 32-битной версии убрали с главной стравницы. Следите за [[https://www.msys2.org/news/|новостями]].+**ПРИМЕЧАНИЕ:** С мая 2020 2-битную **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/|новостями]].
  
 Вы еще тут ? Я еще держусь, но с трудом... :) Вы еще тут ? Я еще держусь, но с трудом... :)
Line 55: Line 55:
 Так что на самом деле у нас бывает (как минимум!) __ТРИ__ build системы: ''msys2'', ''mingw32'' и ''mingw64''. Так что на самом деле у нас бывает (как минимум!) __ТРИ__ build системы: ''msys2'', ''mingw32'' и ''mingw64''.
 Все три ставить не обязательно. Например, если нам надо только собирать "чистые" 32-битные программы Все три ставить не обязательно. Например, если нам надо только собирать "чистые" 32-битные программы
-на 32-битной винде то можно поставить 32-битную **MSYS2** без её компиляторов и build-систему ''mingw32''.+на 32-битной винде то можно поставить 32-битную **MSYS2** без её собственных компиляторов и build-систему ''mingw32''.
 (как понимаете, на самом деле это будет 32-битный компилятор **Mingw-w64** работающий под 32-битной **MSYS2** и который умеет (как понимаете, на самом деле это будет 32-битный компилятор **Mingw-w64** работающий под 32-битной **MSYS2** и который умеет
 делать 32-битные "чистые" программы под Windows. Надеюсь крыша у вас еще не поехала...) делать 32-битные "чистые" программы под Windows. Надеюсь крыша у вас еще не поехала...)
Line 63: Line 63:
 Установщик ''pacman'' знает про себя, 32-бита он или 64, берёт правильные пакеты и ставит Установщик ''pacman'' знает про себя, 32-бита он или 64, берёт правильные пакеты и ставит
 в правильный каталог. Репозиторий для любой **MSYS2** всегда называется просто ''msys2'' :) в правильный каталог. Репозиторий для любой **MSYS2** всегда называется просто ''msys2'' :)
-Компилятор для **MSYS2** в base-devel не входит, да он нам и не нужен.+Компилятор для самой **MSYS2** в base-devel не входит, да он нам и не нужен.
  
 {{ start-menu.jpg?nolink|MSYS2 Menu}} {{ start-menu.jpg?nolink|MSYS2 Menu}}
Line 73: Line 73:
 Вот только никакого компилятора не появится! Вот только никакого компилятора не появится!
  
-Чтобы воспользоваться нужным компилятором, надо запустить нашу **MSYS2** особым образом.+Чтобы воспользоваться нужным компилятором, надо __запустить__ нашу **MSYS2** особым образом.
 Если вы откроете кнопку Пуск --> Все программы --> "MSYS2 32bit" то увидите __три__ разных "среды": Если вы откроете кнопку Пуск --> Все программы --> "MSYS2 32bit" то увидите __три__ разных "среды":
 "MSYS2 MinGW 32bit", "MSYS2 MinGW 64bit" и "MSYS2 MSYS". По крайней мере, на Windows7 так, "MSYS2 MinGW 32bit", "MSYS2 MinGW 64bit" и "MSYS2 MSYS". По крайней мере, на Windows7 так,
Navigation