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

StackOverflow https://stackoverflow.com/questions/182408

Вопрос

Существует ли руководство по кросс-компиляции приложения на 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 (в основном непроверенный)
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top