Цитата(west329_ @ May 22 2008, 09:18)

Задача стоит в том, чтоб программа заработала на АРМ контроллере, на котором работает Linux. При этом хочу использовать платформу обычных недорогих роутеров типа ASUS или Dlink? на них как я понял уже стоит линукс, нужно только докинуть исполнямый файл в прошивку.
Но это только в планах, саму программу пока нужно подкорректировать, тестировать нужно в Windows.
Для сборки в EXE файл линукс исходников используют популярую Cygwin.
1. Судя по Вашей формулировке Вы совершенно не представляете, что Вы хотите сделать.
Потому что:
1.1 АРМ контроллере
1.2 на котором работает Linux
1.3 Cygwin
Не понятно, каким образом программа собранная с помощью Cygwin будет работать на ARM контроллере под Linux.
Для того, чтоб программа работала на ARM контроллере, на котором Linux, нужно иметь кросс-компилятор. Будет он (кросс-компилятор) запускаться на Linux или из под Cygwin - не имеет значения.
Для того чтобы перекомпилить Linux-овую программу под Windows, используя Cygwin, нужно иметь под Cygwin установленные ВСЕ программы, используемые во время компиляции.
Очень минимальный набор это binutils, gcc, g++, glibc, make, sh
Как правило, для компиляции более или менее сложных программ нужна еще куча инструментального софта, так что установка по умолчанию Cygwin не катит. Достаточно вероятно, что ПОЛНАЯ установка Cygwin, то есть выбираем при установке ВСЕ пакеты, даст возможность компилировать 75% программ.
1.4 При установке Linux, инструментальный софт устанавливается, как правило, по умолчанию, хотя и не во всех дистрибутивах. Потому программа и компилируется в Linux без проблем.
2. Есть программа make. Вообще-то полное название GNU make, потому как всякие CBuilder-ы то-же имеют такую программу в своем составе, но они в данном случае негодятся.
Эти программа читает Makefile и выполняет то, что там написано.
gcc - это компилятор. Его вызов осуществляется программой make в соответствии с написанными правилами в Makefile.
3. У меня есть некоторый опыт перекомпиляции Linux программ под Cygwin.
В простейших случаях все работает без проблем. Но если программа чуть сложнее школьных упражнений по информатике, то возникает такое количество проблем, что лучше сразу отказаться от этой затеи и перейти на Linux. Если автор программы изначально не писал программу в расчете на Cygwin - то это работенка для мазохистов.
PS: Использую VirtualBox (virtualbox.org), очень хорошо работает. Если не хотите "чистый" Linux, поставте его в виртуальную машину на VirtualBox.
PPS: У Вас же не возникает мысли написать и компилировать программу для Windows используя Linux.
А между прочим это гораздо легче, чем Linux программу компилить в Cygwin.