суббота, 1 декабря 2018 г.

Установка и настройка Msys2 для программирования на C и С++ в Windows

msys2 logo
Есть замечательный проект MSYS2, который предоставляет для Windows пакетный менеджер Pacman, портированный из Arch Linux. С помощью данного пакетного менеджера можно легко устанавливать необходимые компиляторы для программирования, библиотеки для разработчиков, например, GTK+ или Qt5, и различные инструменты разработки.

В данной статье рассмотрим, как установить набор компиляторов GCC для C/C++, и напишем простые программы на этих языках.

Установщик MSYS2 скачивается с сайта http://www.msys2.org/. MSYS2 не может быть установлен на диск с разметкой FAT* и на Windows XP или более старую Windows. Такие компьютеры уже редкость, и ограничения не создают проблем.

Установка и настройка Msys2


Скачиваем и запускаем установщик: для 64-битной системы x86_64, для 32-битной — i686.

Нажимаем на «Далее»:

Начало установки Msys2
Рис. 1. Начало установки MSYS2

Указываем директорию установки. Путь должен быть коротким, содержать только латиницу с цифрами (ASCII). В пути не должно быть знаков ударений, пробелов и символических ссылок. Лучше оставить путь по умолчанию:

MSYS2 - выбор каталога установки
Рис. 2. Выбор каталога установки MSYS2

Указываем называние папки в меню «Пуск»:

Выбор папки в меню Пуск
Рис. 3. Выбор папки в меню «Пуск»

Ждем завершения процесса установки:

Процесс установки MSYS2
Рис. 4. Процесс установки MSYS2

Оставляем отмеченной галочку «Запустить Msys2 сейчас» и нажимаем завершить:

Завершение установки MSYS2
Рис. 5. Завершение установки MSYS2

В начале необходимо обновить основные системные пакеты MSYS2 и базу данных с информацией об доступных пакетах. Для этого вводим команду:

pacman -Syu

И соглашаемся на обновление, вводом y:

Обновление баз данных пакетов MSYS2
Рис. 6. Обновление баз данных пакетов MSYS2

Для завершения установки возможно потребуется вручную закрыть окно с терминалом MSYS2. И заново его запустить через ярлык в меню «Пуск»:

Требуется перезапуск терминала MSYS2
Рис. 7. Требуется перезапуск терминала MSYS2

После перезапуска терминала Msys2, выполняем команду для обновления остальных пакетов:

pacman -Su


Обновление остальных пакетов MSYS2
Рис. 8. Обновление остальных пакетов MSYS2

После всех обновлений, пакетный менеджер Pacman готов к применению.

Установка набора компиляторов GCC для C/C++ и легковесной IDE Geany


У пакетного менеджера pacman имеется группа mingw-w64-x86_64-toolchain, в которой собраны компиляторы GCC, стандартные библиотеки и инструменты разработки:

Установка пакетов из группы mingw-w64-x86_64-toolchain
Рис. 9. Установка пакетов из группы mingw-w64-x86_64-toolchain

В моем случае в группе mingw-w64-x86_64-toolchain имеется 17 пакетов. При необходимости вы можете установить все пакеты. Для программирования на C/C++ достаточно пакета mingw-w64-x86_64-gcc, с которым по зависимостям установятся еще несколько необходимых пакетов:

pacman -S mingw-w64-x86_64-gcc

В качестве редактора кода воспользуемся программой Geany, в которой легко писать простые программы на C/C++, компилировать и запускать.

pacman -S mingw-w64-x86_64-geany

Hello World на C/C++


Запускаем geany в виде фоновой задачи в терминале Msys2:

geany &

Пока работает geany, можно продолжать пользоваться терминалом Msys2, но нельзя его закрывать, так как geany закроется вместе с ним. В одной из следующих статей я расскажу про другой вариант запуска программ, установленных в Msys2.

IDE Geany
Рис. 10. IDE Geany

В Genay создаем новый файл. Можно создать файл с помощью шаблона: Файл -> Создать из шаблона.

Начнем с языка Си и напишем программу, выводящее сообщение Hello, World!:

#include <stdio.h>

int main(int argc, char **argv)
{
    printf("Hello, World!\n");
    return 0;
}

И сохраним в файл, например, hello.c.

Скомпилировать программу можно:
  • нажав на кнопку «Собрать текущий файл» на панели инструментов;
  • через главное меню: Сборка -> Build ;
  • или с помощью горячей клавиши F9.

Запускается программа, аналогично сборке, также просто:
  • нажатием кнопки «выполнить» на панели инструментов;
  • через главное меню: Сборка -> Execute ;
  • Или с помощью горячей клавиши F5.

Запуск программы Hello World
Рис. 11. Запуск программы Hello World

Для языка C++ программа Hello, World! будет:

#include <iostream>

int main(int argc, char **argv)
{
    std::cout << "Hello, World!\n";
    return 0;
}

Сохранив файл, например, как hello.cpp, абсолютно также производим сборку и запускаем.

Заключение


Для простоты программирования на C/C++ в Windows можно использовать Msys2. Так в составе Msys2 идет пакетный менеджер pacman, с помощью которого устанавливаются необходимые компиляторы и инструменты разработки. И установив нужные пакеты за пару десятков минут, можно спокойно программировать далее.