LINUX.ORG.RU

MSYS2 + MinGW-w64

 


1

1

При установленном MSYS2 есть ли какой-нибудь смысл в установке MinGW-w64 или можно все порты, которые ставятся с MinGW-w64, установить pacman'ом в msys2 ? Можно ли сказать, что MinGW-w64, по сути, включен в поставку MSYS2 или это не одно и тоже и есть какой-нить сакральный смысл в отдельной установке MinGW-w64?

Ответ на: комментарий от anonymous

Базируюсь только на опыте с Vala и GTK+, не углублялся в причинах ошибок, но установка mingw{32,64} позволила собирать без проблем и PE32, и PE64. Возможно, делал что-то неверно и можно было обойтись без установки mingw. make, к примеру, там вообще общий.

backbone ★★★★★
()
Ответ на: комментарий от backbone

Базируюсь только на опыте с Vala и GTK+, не углублялся в причинах ошибок, но установка mingw{32,64} позволила собирать без проблем и PE32, и PE64. Возможно, делал что-то неверно и можно было обойтись без установки mingw. make, к примеру, там вообще общий.

а как Вы make установили в MinGW-w64? его ж там нету вроде.. в msys2 (или msys) только

vosempopugaev
() автор топика

MSYS2 — это pacman, bash, терминал и минимальная обвязка вокруг pacman.

при этом в кнопку пуск устанавливаются 3 ярлыка: MSYS2 (для pacman -Suy), MinGW-64 32-bit,MinGW-64 64-bit

зачем 3? ну, если ты читал инструкцию по установке, где рекомендуют сразу обновить, то должно быть понятно: первый ярлык запускает терминал, в котором можно обновить pacman, при этом надо будет закрыть терминал, перезапустить. если делать это из вторых и третьих ярлыков, то могут быть глюки: после обновления вдруг пропадают файлы. перезапускаем — появляются.

второй и третий — с настроенным PATH для нужного gcc (то есть, which gcc выдаст разные).

или это не одно и тоже и есть какой-нить сакральный смысл в отдельной установке MinGW-w64?

this. первый ярлык нужен чтобы обновлять по инструкции «весь мир», и ставить свои арчбилды, из файла. там даже префиксы у пакетов разные: local/* и mingw-w64-x86_64-*/*, mingw-w64-i686-*/*

anonymous
()
Ответ на: комментарий от backbone

некоторые пакеты там есть с разными префиксами: и local, и в 32-битной системе, и в 64-битной.

поправка: неправильно немного написал: не local/*, mingw-w64-x86_64-*/*, а local/* (если пакет в msys2), local/mingw-w64-x86_64-* если в mingw64, mingw-w64-i686-* если в mingw32.

то есть, 64-битный пакет может быть недоступен в 32-битном шелле, и наоброт. а без префикса везде доступны.

например, тот же gcc: установлен как 3 пакета, local/gcc (в msys2), local/mingw-w64-i686-gcc (32-битный), local/mingw-w64-x86_64-gcc (64-битный)

это видно по pacman -Qs gcc

установлен в разные места, и разных версий. в итоге, дефолтная версия из msys2 перекрывается обновлённой рабочей, из нужного профиля.

anonymous
()
Ответ на: комментарий от backbone

какие ошибки?

без установки mingw (то есть gcc) vala бесполезна (т.к. оно компилируется через си, и нужен компилятор си).

в чём твой вопрос, непонятно? сформулируй как следует.

anonymous
()

то есть, как вот тут написано: bash pacman pacman-mirrors msys2-runtime это основные ('core') пакеты, из основного профиля (msys2).

далее можно поставить дополнительные (mingw-w64-x86_64-* либо mingw-w64-i686-*).

соответственно, через какой ярлык терминал открываешь, в тот профиль и попадаешь. при этом msys2 общий.

anonymous
()
Ответ на: комментарий от anonymous

в чём твой вопрос, непонятно? сформулируй как следует.

я не задавал вопроса и у меня нет проблем с MSYS/pacman на данный момент.

Только утверждаю, что правильнее ставить компилятор и сопутствующие средства в соответствующее mingw{32,64} окружение, если эти пакеты в нём доступны. Как исключение - make, который есть только в msys.

backbone ★★★★★
()
Последнее исправление: backbone (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.