54 lines
4.0 KiB
Markdown
54 lines
4.0 KiB
Markdown
|
---
|
|||
|
title: "Eclipse CDT и MSYS2, учим видеть MinGW"
|
|||
|
categories: ["cpp", "archive"]
|
|||
|
date: 2019-07-15T00:00:00+03:00
|
|||
|
draft: false
|
|||
|
featured_image: miniature.jpg
|
|||
|
---
|
|||
|
|
|||
|
|
|||
|
Вот захотелось Eclipse попробовать в качестве среды разработки для C++. Везде в списках IDE для C++ она фигурирует. Иногда даже как лучшая. Что ж, будем пробовать.
|
|||
|
|
|||
|
<!--more-->
|
|||
|
|
|||
|
Пользуюсь я пакетом MSYS2, с установленным MinGW, который давным-давно сидит в PATH. После наведения красоты (спорно, конечно) при создании нового проекта мы видим это:
|
|||
|
|
|||
|
![Где MinGW?](whereismingw.png "Где MinGW?")
|
|||
|
|
|||
|
Где, спрашивается, MinGW? Он должен присутствовать в списке инструментария, но его нет. Лезем в [FAQ](https://github.com/eclipse-cdt/cdt/tree/main/FAQ#i-installed-mingw-toolchain-on-my-pc-but-eclipse-wont-find-it) пытаемся выполнить все пункты, ничего всё так же не находится. Однако в конце замечаем следующие строки:
|
|||
|
|
|||
|
> Despite having g++.exe or gcc.exe on your PATH and having defined MINGW\_HOME, you may still get a “Toolchain "MinGW GCC" is not detected” message (CDT 8.4 on Luna 4.4.0). Make sure that a file called "mingw32-gcc.exe" exists in MINGW\_HOME\\bin. If it doesn't exist (which happens with MinGW-W64), copy a -gcc.exe file (e.g. i686-w64-mingw32-gcc.exe) to mingw32-gcc.exe. If the dreaded message still lingers around, reboot your system (don't just logout and login).
|
|||
|
|
|||
|
Ага! Значит, Eclipse ищет не **gcc**, а **mingw32-gcc**. Которого у нас нет:
|
|||
|
|
|||
|
![Нет тут mingw32-gcc](mingw32-gcc-missing.png "Нет тут mingw32-gcc")
|
|||
|
|
|||
|
В официальном FAQ, как уже можно было заметить, советуют создать копию **gcc.exe** и назвать её **mingw32-gcc.exe**. Но мы поступим умнее. Начиная с Vista, в Windows присутствует утилита [mklink](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink). Для создания символических ссылок, прям как в Linux. Открываем окно команд (у меня cmder) от **имени администратора**, переходим в каталог mingw32/bin и создаём ссылку:
|
|||
|
|
|||
|
![mklink](mklink.png)
|
|||
|
|
|||
|
```cmd
|
|||
|
mklink mingw32-gcc.exe gcc.exe
|
|||
|
```
|
|||
|
|
|||
|
Не знаю, нужно ли создавать ссылки для остальных частей комплекта, но для того, чтобы MinGW определился в Eclipse, этого достаточно. Проверяем:
|
|||
|
|
|||
|
![MinGW найден](mingwfound.png "MinGW найден")
|
|||
|
|
|||
|
Проверяем компилируется ли Hello World проект:
|
|||
|
|
|||
|
![Ошибка сборки](buildfail.png "Ошибка сборки")
|
|||
|
|
|||
|
Нет. Лезем в конфигурацию и видим, что выбран не тот комплект, который мы выбирали при создании проекта. Странно. Выбираем нужный:
|
|||
|
|
|||
|
![Выбор комплекта](settool.png "Выбор комплекта")
|
|||
|
|
|||
|
Пробуем снова:
|
|||
|
|
|||
|
![Успешная сборка](buildok.png "Успешная сборка")
|
|||
|
|
|||
|
Собирается. И запускается, если кликнуть правой кнопкой по бинарю -> Run As -> Local C/C++ Application. Это создаст конфигурацию для последующих запусков. Отладчик тоже работает:
|
|||
|
|
|||
|
![Всё работает](debug.png "Всё работает")
|
|||
|
|
|||
|
В итоге, не без геморроя, но всё завелось. Как и обычно, впрочем :)
|