Сборка .exe из под Linux

Рейтинг: 2Ответов: 2Опубликовано: 30.06.2011

Доброго времени суток товарищи кодеры, а кодерам линуксоидам вдвойне!
Меня интересует седующий вопрос:
Каким способом наиболее эффективно собрать код в exe-шник?
Имеется в виду не просто сборка с заданным разширением, но и работоспособность в осях Win. Как консольные, так и проги с собственным интерфейсом.
Как это делаете вы? Если делаете.
Использовать виртуальную машину или поставить Win не имею возможности.
Что если через установить например VS или Delphi, запускать это wine'ом, писать на них с использованием библиотек WinAPI и как результат собирать, то будет ли полученный файл юзабелен под Windows?
Если вы посоветуете кроссплатформенный компилятор, то накидайте небольшое HowTo или линк на него пожалуйста.

Ответы

▲ 7Принят

Что если через установить например VS или Delphi, запускать это wine'ом, писать на них с использованием библиотек WinAPI и как результат собирать, то будет ли полученный файл юзабелен под Windows?

Да, это возможно. Получаемый исполняемый файл будет такой же как при сборке под Windows. Единственный нюанс связан с тем, что VS и Delphi являются серьезными программными комплексами и их произвольная версия с произвольной версией wine и linux может быть просто неработоспособна. Но с достаточно старыми и 'зрелыми' версиями студий проблем не будет.

Каким способом наиболее эффективно собрать код в exe-шник?

Компилятором, поддерживающим кросс-компиляцию. Это означает, что компилятор будет под linux, а выходной код - под windows. Ищите в гугле по ключевым словам gcc, cross-compile, windows. Еще рекомендую обратить внимание на проекты Mingw32 и Cygwin: они позволяют писать программы под windows с помощью gcc, т.е. можно делать переносимые программы между средами linux и windows с одним исходным кодом, путем простой перекомпиляции.

▲ 2

Правильно gecube говорит:

Еще рекомендую обратить внимание на проекты Mingw32 и Cygwin: они позволяют писать программы под windows с помощью gcc, т.е. можно делать переносимые программы между средами linux и windows с одним исходным кодом, путем простой перекомпиляции.

Вот как для С у меня в Geany выглядят пораметры сборки:
Скомпилировать UNIX: gcc -lm -o "%e" "%f"
Скомпилировать WIN: i586-mingw32msvc-gcc -o "%e".exe "%f"
Сборка: gcc -Wall -c "%f"

Выполнить: "./%e"
Выполнить EXE: "./%e".exe