MXE (программа)
Ошибка скрипта: Модуля «Unsubst» не существует.
Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.
Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.Ошибка скрипта: Модуля «Transclude» не существует.Шаблон:Карточка/название | |
---|---|
Шаблон:Wikidata | |
Шаблон:Wikidata |
Шаблон:Сортировка: по изображениямШаблон:ИТ:Общие проверки
MXE (M cross environment) — это набор make-файлов, который компилирует кросс-компилятор и с его помощью кросс-компилирует многие свободные и открытые библиотеки.
История[править]
MXE начал разрабатываться в 2007 году.
Возможности[править]
- Предоставляет удобную среду для кросс-компиляции программ и библиотек предназначенных для запуска в ОС Windows.
- Среда спроектирована для запуска в любой UNIX-подобной операционной системе.
- Официально поддерживаются следующие цели сборки (используют win32-threads):
- i686-w64-mingw32.static
- i686-w64-mingw32.shared
- x86_64-w64-mingw32.static
- x86_64-w64-mingw32.shared
- Неофициально также доступны цели (используют posix-threads):
- i686-w64-mingw32.static.posix
- i686-w64-mingw32.shared.posix
- x86_64-w64-mingw32.static.posix
- x86_64-w64-mingw32.shared.posix
- Цели полностью изолированны друг от друга и для каждой существует своё поддерево /bin, /include, /lib.
- Предоставляет большой набор make-файлов для кросс-компиляции многих[4][5] свободных и открытых библиотек, таких как SDL и Qt, который:
- регулярно пополняется новыми библиотеками,
- поддерживается в актуальном состоянии (каждый make-файл содержит секцию для обеспечения проверки наличия новых версий на официальном сайте библиотеки).
- Предоставляет (если необходимо) набор патчей к исходным кодам библиотек с исправлениями для:
- обеспечения возможности кросс-компиляции,
- корректной работы в ОС Windows.
- Загружает архивы с исходным кодом библиотек и проверяет корректность загруженного при помощи хеш-сумм.
- Позволяет собирать только требуемое подмножество из доступного набора библиотек.
- При сборке библиотеки автоматически (на основе информации из make-файла) вычисляет и собирает все библиотеки от которых она зависит, а также их зависимости (любого уровня вложенности).
- Обновление набора make-файлов осуществляется командой git pull.
- Если за время прошедшее с предыдущей сборки произошли какие-то изменения в make-файлах библиотек или в make-файлах их зависимостей, то MXE автоматически рассчитает все варианты и из указанного в командной строке списка библиотек станет собирать заново только те цепочки библиотек, которые в этом нуждаются.
- Имеется возможность указать в файле настроек settings.mk набор избранных библиотек, так что после очередного выполнения git pull их можно будет пересобрать просто запустив команду make без аргументов.
- Предоставляет возможность распараллеливания сборки:
- параллельная сборка нескольких библиотек (и соответственно их зависимостей) одновременно (например: make boost qt --jobs=4),
- параллельная сборка каждой отдельной библиотеки (например: make boost qt JOBS=2),
- оба варианта указанные выше одновременно (например: make boost qt --jobs=4 JOBS=2).
- Поддерживает следующие системы сборки: Autotools, CMake, qmake, Makefile[6].
- Имеется возможность использовать уже скомпилированные библиотеки[7].
- Возможно использование уже скомпилированных библиотек в таких системах как Travis CI[8][9].
- Поддержка системы плагинов[10], предоставляющей:
- удобный способ собирать свои программы (расположив их make-файлы в директории mxe/plugins/apps) используя среду и библиотеки MXE, в качестве примера, добавлено несколько популярных программ: Clementine, KeePassX, qBittorrent, Tor и др.[11] (например make qbittorrent MXE_PLUGIN_DIRS=plugins/apps)
- возможность собирать библиотеки MXE или программы с помощью более новой версии компилятора GCC, или наоборот с помощью более старой версии в случае проблем с совместимостью (например make qbittorrent MXE_PLUGIN_DIRS="plugins/apps plugins/gcc6").
Вспомогательные утилиты[править]
MXE содержит набор вспомогательных утилит[12]:
- copydlldeps.sh - автоматически определяет и копирует в указанное место зависимости как 32-битных, так и 64-битных программ и DLL библиотек, набор опций доступен по команде copydlldeps.sh --help, примеры использования доступны в make-файлах программ в директории mxe/plugins/apps,
- install-deps - устанавливает все необходимые зависимости для работы MXE,
- make-shared-from-static - создаёт динамические (shared) библиотеки из статических (static) библиотек, удобна в том случае когда библиотека поддерживает только static цели,
- patch-tool-mxe - создаёт, экспортирует и импортирует патчи к исходным кодам библиотек и программ представленных в MXE,
- skeleton.py - создаёт каркас make-файла, используется при добавлении в MXE новой библиотеки.
См. также[править]
Примечания[править]
- ↑ https://lists.debian.org/debian-embedded/2007/06/msg00007.html
- ↑ https://github.com/mxe/mxe/releases/tag/start
- ↑ https://github.com/mxe/mxe/releases/tag/build-2016-10-12
- ↑ http://mxe.cc/#packages
- ↑ http://mxe.cc/build-matrix.html
- ↑ http://mxe.cc/#tutorial
- ↑ http://pkg.mxe.cc/
- ↑ Пример использования MXE в Travis CI для проекта EiskaltDC++ (yml-файл)
- ↑ Пример использования MXE в Travis CI для проекта EiskaltDC++ (сборка)
- ↑ https://github.com/mxe/mxe/tree/master/plugins
- ↑ https://github.com/mxe/mxe/tree/master/plugins/apps
- ↑ https://github.com/mxe/mxe/tree/master/tools
Ссылки[править]
- Официальный сайт
- Руководство по установке и использованию
- Страница проекта на GitHub
- Скомпилированные пакеты
- Кросс-компиляция в MXE Krita
- Кросс-компиляция ITK используя MXE
- Кросс-компиляция OpenGeoSys на macOS
- Кросс-компиляция Fldigi
- Проекты которые официально используют MXE
- Страница проекта на Open Hub
- Mailing List
Шаблон:Сортировка: изолированные статьиОшибка скрипта: Модуля «Unsubst» не существует.
This article "MXE (программа)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:MXE (программа). Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.