Руководство по кросс-компиляции приложения С++ из Linux в Windows?
Есть ли инструкция для кросс-компиляции приложения С++ из Linux в Windows?
Только это. Мне нужна информация (ссылки, ссылки, примеры...), чтобы помочь мне сделать это.
Я даже не знаю, возможно ли это.
Моя цель - скомпилировать программу в Linux и получить файл .exe, который я могу запустить под Windows.
Ответы
Ответ 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 (в основном непроверенный)