
Компиляция программы из Linux в Windows при помощи Сygwin, GCC и Eclipse CDT
Недавно мне срочно понадобилось установить небольшое написанное мною консольное приложение на машину с Windows которое изначально предназначаось для Linux. При разработке я использовалал среду Eclipse CDT. Особенность приложения было в том, что оно работало с com портом при помощи стандартных средств из Linux (termios.h). Сначала я обнаружил, что под windows используются немного другие средства работы с последовательным интерфейсом изучать который не было ни какого интереса. Я немного поразмыслил и вспомнил, что есть такая штука как Cygwin и в его компонентах есть специальная версия компилятора gcc которая может компилировать приложения использующие POSIX api как win32 приложения.
И так что мы имеем. Проект из Eclipse c исходниками на C (Си). Для начала нужно установить Cygwin c GCC. Качаем его с сайта проекта http://cygwin.org/ (Прямая ссылка). Запускаем setup.exe, выбираем зеркало и следующие обязательные пакеты:
- gcc4-core
- make
- git-core
Установку Cygwin устанавливаем в каталог c:/cygwin
После установки добавляем в системную. переменную окружения Path путь к Cygwin:
Далее, качаем с сайта http://www.eclipse.org/ (прямая ссылка) Eclipse с CDT плагином. Распаковываем его куда-нибудь(например в корень диска C:) Кидаем ярлык на рабочий стол. Закускаем Eclipse и импортируем наш проект:
После импорта проекта настраиваем пути к компилятору и Includes.
Нажимаем правой кнопкой на проекте и выбираем - Properties:
Сначала я выбрал правильную кодировку моего проекта:
Далее выбирал соответствующий Cygwin GCC toolchain
Если все выбрано правильно, то должен появиться соответствующие Includes
Теперь выбираем в Build configuration - Release:
Также хочу отметить в Windows существует понятие оконного и консольного приложения для того чтобы сорать оконное, я добавил ключ -mwindows для линковщика, т.к. по умолчанию собирается консольное приложение(ключ -mconsole) и при запуске мигает консоль. Можно запускать компиляцию.
Возможные проблемы:
Подобные ошибки могут возникать, либо по тому что вы не выбрали все нужные компонены при установке Cygwin, либо у вас не прописан путь к Cygwin/bin в переменной окружения Path.