Руководство по кросс-компиляции приложения на C ++ с Linux на Windows?
-
06-07-2019 - |
Вопрос
Существует ли руководство по кросс-компиляции приложения на C ++ с Linux на Windows?
Только это.Я хотел бы получить некоторую информацию (ссылки, справочники, примеры ...), которая помогла бы мне сделать это.
Я даже не знаю, возможно ли это.
Моя цель - скомпилировать программу в Linux и получить exe-файл, который я смогу запустить под Windows.
Решение
Основы не слишком сложны:
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 и файл набора инструментов для управления сборкой. Еще сложнее добавить нативные кросс-библиотеки. Обычно они хранятся в / usr / cross / i586-mingw32msvc / {include, lib}
, и вам необходимо добавить эти пути отдельно на этапе настройки процесса сборки.
Другие советы
Это зависит от того, что вы имеете в виду (я не могу сказать).
<Ол> Если вы имеете в виду, что хотите использовать существующее приложение 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 .
С уважением!
Я предлагаю вам дать следующее, ГУБ (Grand Unified Builder) попробуйте, поскольку он кросс-компилирует несколько пакетов с их зависимостями и собирает их в единый установочный пакет для существующих на данный момент 11 архитектур.Вы можете загрузить готовый iso-файл для установки в виртуальную машину с здесь и следуйте источнику здесь.В настоящее время его можно использовать для кросс-компиляции 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 - архив shar для Linux/x86
- linux-64 - shar-архив для Linux/x86_64
- linux-ppc - shar-архив для Linux/PowerPC
- freebsd-x86 - архив shar для FreeBSD 4/x86
- freebsd-64 - архив shar для FreeBSD 6/x86_64
- пакеты cygwin - .tar.bz2 для Cygwin/ Windows32
- arm - shar архив для Linux/ ARM (в основном непроверенный)
- debian - архив shar для Debian (в основном непроверенный)