Я хотел перенести свое приложение Qt 4 на использование Qt 5. Эти инструкции не выполнены из-за некоторых различий с тем, как MXE создает Qt 5, включая тот факт, что он использует модульные архивы Qt вместо одного большого архива.
Сборка Qt 5 в Linux для Windows
Ответы (4)
Вот полные инструкции:
Возьми:
git clone https://github.com/mxe/mxe.git
Установите создайте зависимости
Соберите Qt 5 для Windows:
cd mxe && make qtbase
Это сначала создаст его зависимости и инструменты перекрестной сборки; На быстром компьютере с приличным доступом в Интернет это займет менее часа.
Из-за новой модульной природы Qt 5 различные основные компоненты Qt теперь находятся в разных архивах. Тот, что был выбран выше,
qtbase
, должен предоставить вам достаточную функциональность для запуска обычных приложений с графическим интерфейсом, и это все, что мне нужно для моего собственного (небольшого) приложения.Если вы хотите вместо этого собрать весь Qt 5, вам нужно запустить
make qt5
(вместоmake qtbase
). Обратите внимание, что это займет намного больше времени, поэтому убедитесь, что вам нужны дополнительные функции.Перейдите в каталог вашего приложения и запустите инструмент генератора Qt Makefile:
<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
Создайте свой проект:
make
Вы должны найти двоичный файл в каталоге ./release:
wine release/foo.exe
Некоторые примечания:
Это было протестировано на моем 64-битном Debian 8 и, конечно же, на Windows.
На выходе получается 32-битный статический исполняемый файл, который будет хорошо работать в 64-битной Windows.
Если вам нужен 64-битный исполняемый файл, соберите Qt с помощью:
make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
Значение по умолчанию
MXE_TARGETS
равноi686-w64-mingw32.static
.
pacman -S mingw32/mingw-w64-i686-qt-creator
или pacman -S mingw64/mingw-w64-x86_64-qt-creator
- person It's Your App LLC; 11.11.2014
$ export PATH=<mxe root>/usr/bin:$PATH
- person Amit Tomar; 18.09.2015
filesystem
файла или каталога. Пожалуйста помоги.
- person abhiarora; 22.08.2019
Команда git checkout неверна. Теперь вам нужно получить их стабильную ветку, иначе сборка не удастся.
git clone https://github.com/mxe/mxe.git
должно быть...
git clone -b stable https://github.com/mxe/mxe.git
Это само по себе решило все мои проблемы со сборкой qtbase, но не оставило папки qt, когда это было сделано. Тогда цель qt5 потерпит неудачу с неясными ошибками. Удалил папку, проверил стабильно, работает без нареканий.
master
сейчас работает, и я на самом деле не помню, когда он вышел из строя, хотя я в основном строю qtbase
, а не больший qt5
.
- person tshepang; 04.12.2014
stable
больше не существует.
- person Marcus; 21.07.2017
Для тех, кто напрямую хочет 64-битный скомпилированный GCC10 Qt5 (например, для файловой системы lib), вот полные инструкции:
Возьми:
git clone https://github.com/mxe/mxe.git
Установите создайте зависимости
Соберите Qt 5 для Windows с активированным плагином gcc10 64bits:
cd mxe && make MXE_TARGETS=x86_64-w64-mingw32.shared MXE_PLUGIN_DIRS=plugins/gcc10 qt5
Через 2-3 часа сборки вы можете собрать свое приложение (в вашем каталоге .pro):
<mxe root>/usr/x86_64-w64-mingw32.shared/qt5/bin/qmake
Экспортируйте путь компилятора и создайте свой проект:
export PATH=<mxe root>/usr/bin:$PATH
make
Вы должны найти двоичный файл в каталоге ./release и запустить его с помощью вина (или вина64):
wine foo.exe
Я действительно не знаю, почему, но мне нужно было добавить каталог компилятора MXE в путь вина, потому что он не мог найти библиотеки DLL:
WINEPATH="<mxe root>/usr/x86_64-w64-mingw32.shared/bin/" wine64 foo.exe
Если вы попытаетесь сделать это, для меня работает нормально!
su
mv mxe /opt/mxe
cd /opt/mxe && make