Eclipse CDT и MSYS2, учим видеть MinGW

Вот захотелось Eclipse попробовать в качестве среды разработки для C++. Везде в списках IDE для C++ она фигурирует. Иногда даже как лучшая. Что ж, будем пробовать.

Пользуюсь я пакетом MSYS2, с установленным MinGW, который давным-давно сидит в PATH. После наведения красоты (спорно, конечно) при создании нового проекта мы видим это:

Где MinGW?
Где MinGW?

Где, спрашивается, MinGW? Он должен присутствовать в списке инструментария, но его нет. Лезем в FAQ пытаемся выполнить все пункты, ничего всё так же не находится. Однако в конце замечаем следующие строки:

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

В официальном FAQ, как уже можно было заметить, советуют создать копию gcc.exe и назвать её mingw32-gcc.exe. Но мы поступим умнее. Начиная с Vista, в Windows присутствует утилита mklink. Для создания символических ссылок, прям как в Linux. Открываем окно команд (у меня cmder) от имени администратора, переходим в каталог mingw32/bin и создаём ссылку:

mklink
mklink mingw32-gcc.exe gcc.exe

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

MinGW найден
MinGW найден

Проверяем компилируется ли Hello World проект:

Ошибка сборки
Ошибка сборки

Нет. Лезем в конфигурацию и видим, что выбран не тот комплект, который мы выбирали при создании проекта. Странно. Выбираем нужный:

Выбор комплекта
Выбор комплекта

Пробуем снова:

Успешная сборка
Успешная сборка

Собирается. И запускается, если кликнуть правой кнопкой по бинарю -> Run As -> Local C/C++ Application. Это создаст конфигурацию для последующих запусков. Отладчик тоже работает:

Всё работает
Всё работает

В итоге, не без геморроя, но всё завелось. Как и обычно, впрочем :)

comments powered by Disqus