Подтвердить что ты не робот

Руководство по кросс-компиляции приложения С++ из Linux в Windows?

Есть ли инструкция для кросс-компиляции приложения С++ из Linux в Windows?

Только это. Мне нужна информация (ссылки, ссылки, примеры...), чтобы помочь мне сделать это.

Я даже не знаю, возможно ли это.

Моя цель - скомпилировать программу в Linux и получить файл .exe, который я могу запустить под Windows.

4b9b3361

Ответ 1

Основы не слишком сложны:

sudo apt-get install mingw32    
cat > main.c <<EOF
int main()
{
  printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe

Замените apt-get на yum, или независимо от того, что использует дистрибутив Linux. Это создаст hello.exe для Windows.

Как только вы обдумаете это, вы можете использовать autotools и установить CC=i586-mingw32msvc-cc

CC=i586-mingw32msvc-cc ./configure && make

Или используйте CMake и файл toolchain для управления сборкой. Еще труднее добавить библиотеки родных кросс. Обычно они хранятся в /usr/cross/i586-mingw32msvc/{include,lib}, и вам нужно будет добавлять эти пути отдельно на этапе настройки процесса сборки.

Ответ 2

Это зависит от того, что вы имеете в виду (я не мог сказать).

  • Если вы хотите, чтобы вы использовали существующее приложение Linux в Windows, вы можете попробовать его компилировать с помощью Cygwin в Windows. Однако это не дает вам исполняемый файл Windows, свободный от всех зависимостей от Cygwin (ваш исполняемый файл все еще зависит от файла cygwin.dll), и ему все еще может понадобиться портирование, прежде чем он будет работать. См. http://www.cygwin.com.

  • Если вы хотите, чтобы вы могли выполнить фактическую компиляцию приложения Windows в Linux и создать файл .exe, который является исполняемым в Windows, - таким образом, используя ваш Linux-блок для разработки и/или компиляции, вы должны заглянуть в MinGW для Linux, который является инструментом для кросс-компиляции для Windows в Linux. См. http://www.mingw.org/wiki/LinuxCrossMinGW.

С уважением!

Ответ 3

Я предлагаю вам дать следующее: GUB (Grand Unified Builder) попробовать, поскольку он перекрестно компилирует несколько пакетов с их зависимостями и собирает их в единый пакет установки для 11-ти архитектур. Вы можете загрузить готовый iso для установки в VM из здесь и следовать за исходным текстом . В настоящее время он может использоваться для кросс-компиляции GNU LilyPond/GNU Denemo/Inkscape и OpenOffice.org.

Целевые архитектуры:

  • darwin-ppc - tar.bz2 файл для Darwin 7 (MacOS 10.3)/PowerPC
  • darwin-x86 - файл tar.bz2 для Darwin 8 (MacOS 10.4)/x86
  • mingw - исполняемый файл mingw для Windows32
  • linux-x86 - архив для Linux/x86
  • linux-64-shar архив для Linux/x86_64
  • архив linux-ppc - shar для Linux/PowerPC
  • freebsd-x86 - архив для FreeBSD 4/x86
  • freebsd-64 - архив для FreeBSD 6/x86_64
  • cygwin -.tar.bz2 пакеты для Cygwin/Windows32
  • arm-shar архив для Linux/ARM (в основном непроверенный)
  • debian-shar архив для Debian (в основном непроверенный)