Skip to content

Instantly share code, notes, and snippets.

@14droplets
Last active February 13, 2024 20:36
Show Gist options
  • Save 14droplets/fd354c44b6203fc12ffd028547d0729c to your computer and use it in GitHub Desktop.
Save 14droplets/fd354c44b6203fc12ffd028547d0729c to your computer and use it in GitHub Desktop.
Установка MSYS2, GCC, Eclipse

Инструкция по установке GCC через MSYS2 и Eclipse CDT

Отступление

Для языка Си существует огромное множество компиляторов, интегрированных сред разработки, систем сборки и прочих необходимых для работы с ним инструментов. В нашем курсе мы не будем требовать от вас использования каких-то конкретных инструментов, поэтому если, например, вам привычнее использовать vscode (а кому-то может быть и vim), то это вполне допустимо.

Требование к инструментам от нас будет одно. Вернее даже это требование не к инструментам а к коду, который вы будете писать. Этот код должен соответствовать ISO стандарту языка Си. Пускай это будет стандарт C99 или даже C11.

А еще, если вы решите использовать что-нибудь экзотическое, то возможно я не смогу помочь вам с настройкой каких-нибудь плагинов. Я конечно постараюсь, но гарантий не дам. Тогда как связку GCC+Eclipse я, так сказать, беру на поддержку.

Что такое GCC, MSYS2 и Eclipse CDT

Википедия говорит:

GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется в том числе фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Изначально названный GNU C Compiler, поддерживал только язык Си. Позднее GCC был расширен для компиляции исходных кодов на таких языках программирования, как C++, Objective-C, Java, Фортран, Ada, Go, GAS и D.

Согласно вот этому опросу от JetBrains - GCC нынче самый популярный компилятор для языков C/C++ (~70% рынка).

Распространяется по лицензии GNU General Public License. Это значит довольно много интересных вещей, среди которых приятно выделяется то, что им можно пользоваться безвоздмезно.

Поскольку GCC разработан в рамках проекта GNU - первочередно он опирается на окружение и POSIX-совместимый программный интерфейс операционных систем (это Linux, Mac и другие UNIX подобные системы). Поэтому для того, чтобы пользоваться GCC на Windows - требуется не только сам компилятор, но и некоторый необходимый минимум такого окружения.

Такое минимальное, и даже чуть больше минимального, окружение представляется проектом MSYS2 (Minimal System 2).

MSYS2, помимо прочего включает в себя:

  1. Систему Cygwin, позволяющую использовать на Windows функционал линуксов (вместе с командной оболочкой bash);
  2. Пакетный менеджер pacman, с которым можно удобно устанавливать дополнительные компоненты.

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

Однако компилятор - это обычная консольная программа. Было бы здорово иметь что-то в чем можно было бы писать код (с подсветочкой синтаксиса и авто-дополнением то), чтобы можно было удобно запускать программу по клику и работать в отладчике. С такими задачами среди прочего справляются штуки под названием IDE от Integrated Development Environment. Интегрированные среды разработки, которые вот интегрируют в себя все это.

В качестве такой IDE мы будем использовать Eclipse CDT.

Eclipse Foundation это прямо серьезная организация, которая помимо прочего делает свободные (для нас читаем бесплатные) среды разработки на самые разные случаи жизни. CDT здесь это С Development Toolkit и это значит вариант среды разработки для языков C/C++. Среда разработки кстати так же и называется - Eclipse.

Эклипс хорош тем, что в отличии от своих коллег - он не прикручен болтами к конкретным компиляторам и системам сборки. Более того - если установить его самого отдельно - то к нему в комплекте вообще не идет никакого компилятора и работать с ним одним нельзя. Зато к нему можно пристегнуть практически любой компилятор через систему пллагинов. И это очень круто.

Эклипс это не та среда разработки, которую мы хотели бы, но та, которую мы заслуживаем.

Установка MSYS2

Внимание, для MSYS2 нужна операционная система для x86_64 процессоров. Едва ли у вас другая, но если это вдруг так - дайте знать. Для установки требуется интернет.

MSYS2 живет на сайте msys2.org. И собственно там же, прямо на этой странице есть достаточно подробная инструкция по установке с картинками. На всякий случай сделаю здесь аналогичный вариант на русском.

Перво наперво нужно скачать установочный комплект. Вот прямая ссылка на него: https://github.com/msys2/msys2-installer/releases/download/2023-07-18/msys2-x86_64-20230718.exe

Затем его нужно просто запустить. Он покажет вот это

msys-1

Здесь нужно просто нажать "далее". Оно спросит путь для установки.

msys-2

Так вот путь должен содержать исключительно цифры и буквы латинского алфавита. Никаких пробелов, кириллицы и прочих знаков препинания. Указываем путь и жмем далее.

msys-3

После этого он спросит как назвать группу в меню "пуск". Здесь можно оставить все как оно предлагает и просто нажать далее. Начнется установка.

msys-4

Ну и если достаточно долго подождать, то она закончится:

msys-5 msys-6

Галочку "Запустить MSYS2 сейчас" можно оставить. Тогда по завершению сразу откроется его консоль. Она будет нам нужна.

На этом установка базовой системы MSYS2 завершена!

Установка GCC

Ставить будем через MSYS2. Для этого нужно открыть его консоль. Возможно она у вас уже открыта через галочку после установки, но если захотите открыть отдельно - все консоли поселились в меню пуск

msys-7

Если вдруг почему-то в пуске их нет - все эти .exe файлы лежат в корневом каталоге установки. Я установил мсис в папку c:\msys64 и прямо там у меня и лежат запускаторы всех консолей.

Как видите консолей, а правильнее сказать "сред" у мсиса много. Тут можно почитать подробнее: https://www.msys2.org/docs/environments/. Выглядят все эти консоли одинаково, но функционал предоставляют немножко разный. Сейчас нам нужна фиолетовая консоль MSYS2 MSYS. Вот как она выглядит.

msys-8

Мы будем использовать пакетный менеджер pacman, встроенный в мсис. Перво-наперво нужно попросить его скачать себе свежую базу данных определений пакетов. Это делается при помощи команды pacman -Sy. Регистр важен. Вставлять текст в терминал по ctrl+v не получится. Для этого можно использовать либо ПКМ мышкой, либо комбинацию клавиш shift+insert. Вводите команду и жмете энтер. Если все правильно - выглядеть должно вот так

msys-9

Затем устанавливаем GCC. Оно живет в пакете по имени mingw64/mingw-w64-x86_64-gcc. Чтобы этот пакет установить - нужно выполнить команду pacman -S mingw64/mingw-w64-x86_64-gcc. Пакман посчитает какие пакеты необходимы для работы GCC, посчитает размер и покажет их. И спросит хотим ли мы их установить (Proceed with installation? [Y/n]).

msys-10

Мы, очевидно хотим, поэтому жмём Y и потом enter. По завершению оно будет выглядеть примерно вот так:

msys-11

Аналогично устанавливается отладчик - GDB при помощи команды pacman -S mingw64/mingw-w64-x86_64-gdb.

На этом установка GCC так-то завершена. Он установлен в папочку mingw64 в корне мсиса (у меня это C:\msys64\mingw64, мсис я устанавливал в C:\msys64). Еще он доступен в соответствующей синей консоли msys (MSYS2 MINGW64) по команде gcc и в принципе с ним уже можно работать оттуда.

Но будет удобнее, если его можно будет вызвать из обычной консоли Windows, не из мсисовой. А так же, мы хотим, чтобы GCC находил эклипс, который установим позже. Для этого мы добавим его в системную переменную окружения PATH. По списку путей в этой переменной ОС ищет все исполнимые файлы для запуска.

Для этого жмем кнопки win+r (win это кнопка с флажком windows). Появляется окошко "выполнить". Вбиваем туда команду rundll32.exe sysdm.cpl,EditEnvironmentVariables и жмем ок. Откроется окно настроек переменных окружения.

envvar-1

Будьте осторожны и не трогайте лишнего - можете сломать себе систему.

Здесь даблкликом меняем отмеченную пользовательскую переменную PATH. В открывшемся окне жмем "создать" и пишем путь до папки mingw64\bin в корне мсиса. В моём случае это C:\msys64\mingw64\bin, мсис я устанавливал в C:\msys64. Ну и потом все закрываем нажатиями на ОК.

envvar-2

По хорошему, изменение переменных среды все приложения увидят только перезагрузки компьютера. Но соверменный виндос достаточно умный, так что как правило достаточно перезапустить только консоль

Проверяем, что все сделано правильно: Снова жмем win+r, запускаем консоль виндос командой cmd. В открывшейся консоли пишем gcc --version и жмем ентер. Если все правильно, то должно показать вот это

gcc-1

Ура! Установка компилятора завершена

Установка Eclipse

Самое сложное здесь это не ошибиться и скачать правильный вариант. Вот прямая ссылка на установщик: https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2023-06/R/eclipse-inst-jre-win64.exe

При запуске установщика нужно выбрать Eclipse CDT, как показано на картинке!

eclipse-1

Дальше выбрать версию виртуальной java-машины (оставьте как есть) и путь для установки. Здесь вроде бы нет ограничений на пути, но рекомендации общии. Лучше бы без кириллицы, пробелов и прочего. Потом согласиться с лицензией ну и подождать завершения установки.

На этом установка закончена

Установка CMake

Для работы на семинарах может потребоваться система сборки cmake.

Устанавливается она так же как и компилятор при помощи команды pacman -S mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-make

Установка Lua

Lua понадобиться в четвертом семестре. Устанавливается аналогично: pacman -S mingw64/mingw-w64-x86_64-lua

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment