Я написал некоторые эффекты на C ++ (g ++), используя freeglut в Linux, и компилирую их с помощью
g++ -Wall -lglut part8.cpp -o part8
Поэтому мне было интересно, можно ли сделать так, чтобы g ++ создавал статические скомпилированные исполняемые файлы Windows, содержащие все необходимое?
У меня нет Windows, так что было бы здорово, если бы я мог сделать это в Linux :)
Ответы:
mingw32 существует как пакет для Linux. С его помощью вы можете компилировать и связывать приложения Windows. На форуме Code :: Blocks есть руководство . Помните, что команда меняется
x86_64-w64-mingw32-gcc-win32
, например, на.Ubuntu, например, имеет в своих репозиториях MinGW:
источник
Один из вариантов компиляции для Windows в Linux - через mingw. Я нашел очень полезный учебник здесь .
Чтобы установить mingw32 в системах на базе Debian, выполните следующую команду:
sudo apt-get install mingw32
Чтобы скомпилировать свой код, вы можете использовать что-то вроде:
i586-mingw32msvc-g++ -o myApp.exe myApp.cpp
Иногда вы захотите протестировать новое приложение Windows прямо в Linux. Для этого вы можете использовать вино, хотя всегда следует помнить, что в вине могут быть ошибки. Это означает, что вы не можете быть уверены, что ошибка связана с wine, вашей программой или обоими сразу, поэтому используйте Wine только для общего тестирования.
Чтобы установить вино, запустите:
sudo apt-get install wine
источник
mingw32-binutils
иmingw32-runtime
потому что они являются зависимостямиmingw32
void main(){}
т. д.), я предполагаю, что он компилируется в Windows, но не работает в mingw, я их исправил. Я тоже пробовал,i586-mingw32msvc-cpp
и он сгенерировал текстовый файл с чем-то вроде того, что нужно скомпилировать, lol .. g ++ сработал, спасибо!mingw32
(помечены как «зависимости». Если вы укажете их, они не будут (помечены как «ручные»).Предлагаемый метод дал мне ошибку в Ubuntu 16.04: E: не удалось найти пакет mingw32
================================================== =========================
Чтобы установить этот пакет в Ubuntu, используйте следующее:
После установки вы можете использовать его:
Пожалуйста, обратите внимание!
Для 64-битного использования: x86_64-w64-mingw32-g ++
Для 32-битного использования: i686-w64-mingw32-g ++
источник
Установите кросс-компилятор, например mingw64, из диспетчера пакетов. Затем скомпилируйте следующим образом: вместо простого вызова
gcc
calli686-w64-mingw32-gcc
для 32-битной Windows илиx86_64-w64-mingw32-gcc"
64-битной Windows. Я бы также использовал--static
вариант, поскольку в целевой системе могут быть не все библиотеки.Если вы хотите скомпилировать другой язык, как Fortran, замените
-gcc
с-gfortran
в предыдущих командах.источник
Я использовал mingw в Linux для создания исполняемых файлов Windows на C, я подозреваю, что C ++ тоже подойдет.
У меня есть проект ELLCC, который объединяет clang и другие вещи в виде цепочки инструментов кросс-компилятора. Я использую его для компиляции clang (C ++), binutils и GDB для Windows. Перейдите по ссылке для загрузки на ellcc.org, чтобы получить предварительно скомпилированные двоичные файлы для нескольких хостов Linux.
источник
От: https://fedoraproject.org/wiki/MinGW/Tutorial
«Советы и рекомендации по использованию кросс-компилятора Windows»: https://fedoraproject.org/wiki/MinGW/Tips
источник
для Fedora это
источник
sudo dnf groupinstall ...
тоже.