В этом уроке я покажу вам, как пересечь скомпилировать altcoin-QT с помощью MXE и MinGW.
Что MXE? Ну это набор Makefiles позволяющего скомпилировать перекрестную среду с необходимыми пакетами (MinGW-w64, QT, наддув и т.д.) без боли.
Например, я компилирую blackcoin-Qt для 32-разрядной ОС Windows на 64-битной Ubuntu 14.04 LTS, но этот метод должен работать с другим altcoins.
Шаг 1.
Во-первых, нам необходимо установить перекрестное среду компиляции.
Установить MXe зависимости:
Код:
Sudo APT-получить установку p7zip набитый Autoconf Automake Autopoint Баш зубр bzip2 CMake прогибается Gettext мерзавец г ++ Gperf intltool libffi-DEV Libtool libltdl-DEV libssl-DEV LibXML-парсер жемчужно делают OpenSSL патч Perl PKG-конфигурации питон рубин SCons СЕПГ распакуйте Wget XZ -utils
Для 64-битной Ubuntu также установить:
Код:
Sudo APT-получить установку г ++ - многобиблиотечный libc6-DEV-i386
Шаг 2.
Клон MXE GitHub репо (если вы просто скачать почтовый архив из guthub, MXE может не работать):
Код:
кд / мнт
мерзавец клон https://github.com/mxe/mxe.git
мерзавец клон https://github.com/mxe/mxe.git
Наша среда будет находится в / мнт / MXE
Шаг 3.
Теперь нам нужно собрать импульс и qt5 для нашей окружающей среды (нужно несколько часов для этого).
Если вы собираете что-то с помощью MXE и переместить MXe каталог в другое место, то MXE не будет работать, потому что все, что вы собираете скомпонованы статически
Компиляция импульс потерпит неудачу, если память Вашего ПК менее 2 Гб. Создание раздела подкачки будет это исправить.
Компиляция импульс:
Код:
кд / мнт / MXE
сделать MXE_TARGETS ="i686-w64-mingw32.static" увеличение
сделать MXE_TARGETS ="i686-w64-mingw32.static" увеличение
Компиляция qt5:
Код:
сделать MXE_TARGETS ="i686-w64-mingw32.static" qttools
Если вам нужно qt4 (для некоторых altcoins):
Код:
сделать MXE_TARGETS ="i686-w64-mingw32.static" кварты
MXe автоматически определяет всю зависимость и скомпилировать его.
Шаг 4.
К сожалению, не MXe поддержки Berkeley DB и miniupnpc поэтому нам нужно собрать их вручную.
Компиляция Berkley DB:
Скачать и распаковать Berkeley DB:
Код:
кд / мнт
Wget http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
TAR zxvf дб-5.3.28.tar.gz
Wget http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
TAR zxvf дб-5.3.28.tar.gz
Сделать Баш скрипт для компиляции:
Код:
кд /mnt/db-5.3.28
потрогать compile-db.sh
CHMOD Ugo + х compile-db.sh
потрогать compile-db.sh
CHMOD Ugo + х compile-db.sh
Содержание compile-db.sh:
Код:
#! / Bin / Баш
MXE_PATH = / мнт / MXE
СЕПГ -i "с / WinIoCtl.h / winioctl.h / г" SRC / dbinc / win_db.h
MkDir build_mxe
кд build_mxe
CC = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-НКУ \
CXX = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-г ++ \
../ Расстояние / Configure \
--отключить-репликации \
--включить-MinGW \
--включить-CXX \
--х86 \
--префикс = $ MXE_PATH / USR / i686-w64-mingw32.static
делать
сделать установку
MXE_PATH = / мнт / MXE
СЕПГ -i "с / WinIoCtl.h / winioctl.h / г" SRC / dbinc / win_db.h
MkDir build_mxe
кд build_mxe
CC = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-НКУ \
CXX = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-г ++ \
../ Расстояние / Configure \
--отключить-репликации \
--включить-MinGW \
--включить-CXX \
--х86 \
--префикс = $ MXE_PATH / USR / i686-w64-mingw32.static
делать
сделать установку
Обобщение:
Код:
./compile-db.sh
Компиляция miniupnpc:
Скачать и распаковать miniupnpc:
Код:
кд / мнт
Wget http://miniupnp.free.fr/files/miniupnpc-1.6.20120509.tar.gz
TAR zxvf miniupnpc-1.6.20120509.tar.gz
Wget http://miniupnp.free.fr/files/miniupnpc-1.6.20120509.tar.gz
TAR zxvf miniupnpc-1.6.20120509.tar.gz
Сделать Баш скрипт для компиляции:
Код:
кд /mnt/miniupnpc-1.6.20120509
потрогать compile-m.sh
CHMOD Ugo + х compile-m.sh
потрогать compile-m.sh
CHMOD Ugo + х compile-m.sh
Содержание compile-m.sh:
Код:
#! / Bin / Баш
MXE_PATH = / мнт / MXE
CC = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-НКУ \
AR = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-ар \
CFLAGS ="-DSTATICLIB -I $ MXE_PATH / USR / i686-w64-mingw32.static / включить" \
LDFLAGS ="-L $ MXE_PATH / USR / i686-w64-mingw32.static / Библиотека" \
сделать libminiupnpc.a
MkDir $ MXE_PATH / USR / i686-w64-mingw32.static / включить / miniupnpc
ср * .h $ MXE_PATH / USR / i686-w64-mingw32.static / включить / miniupnpc
ф libminiupnpc.a $ MXE_PATH / USR / i686-w64-mingw32.static / Lib
MXE_PATH = / мнт / MXE
CC = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-НКУ \
AR = $ MXE_PATH / USR / бен / i686-w64-mingw32.static-ар \
CFLAGS ="-DSTATICLIB -I $ MXE_PATH / USR / i686-w64-mingw32.static / включить" \
LDFLAGS ="-L $ MXE_PATH / USR / i686-w64-mingw32.static / Библиотека" \
сделать libminiupnpc.a
MkDir $ MXE_PATH / USR / i686-w64-mingw32.static / включить / miniupnpc
ср * .h $ MXE_PATH / USR / i686-w64-mingw32.static / включить / miniupnpc
ф libminiupnpc.a $ MXE_PATH / USR / i686-w64-mingw32.static / Lib
Обобщение:
Код:
./compile-m.sh
Шаг 5.
Ура! Создание нашей окружающей среды делается! Теперь мы можем составить blackcoin.
Добавить MXe бункеров в PATH:
Код:
экспорт PATH = / мнт / MXE / USR / бен: $ PATH
Скачать и распаковать blackcoin источники:
Код:
кд / мнт
мерзавец клон https://github.com/rat4/blackcoin.git
мерзавец клон https://github.com/rat4/blackcoin.git
Сделать Баш скрипт для компиляции:
Код:
кд / мнт / blackcoin
потрогать compile-blk.sh
CHMOD Ugo + х compile-blk.sh
потрогать compile-blk.sh
CHMOD Ugo + х compile-blk.sh
Содержание compile-blk.sh:
Код:
#! / Bin / Баш
MXE_INCLUDE_PATH = / мнт / MXE / USR / i686-w64-mingw32.static / включить
MXE_LIB_PATH = / мнт / MXE / USR / i686-w64-mingw32.static / Библиотека
i686-w64-mingw32.static-QMAKE-qt5 \
BOOST_LIB_SUFFIX = -mt \
BOOST_THREAD_LIB_SUFFIX = _win32-т \
BOOST_INCLUDE_PATH = $ MXE_INCLUDE_PATH / увеличить \
BOOST_LIB_PATH = $ MXE_LIB_PATH \
OPENSSL_INCLUDE_PATH = $ MXE_INCLUDE_PATH / OpenSSL \
OPENSSL_LIB_PATH = $ MXE_LIB_PATH \
BDB_INCLUDE_PATH = $ MXE_INCLUDE_PATH \
BDB_LIB_PATH = $ MXE_LIB_PATH \
MINIUPNPC_INCLUDE_PATH = $ MXE_INCLUDE_PATH \
MINIUPNPC_LIB_PATH = $ MXE_LIB_PATH \
QMAKE_LRELEASE = / мнт / MXE / USR / i686-w64-mingw32.static / qt5 / бен / lrelease blackcoin-qt.pro
сделать -f Makefile.Release
MXE_INCLUDE_PATH = / мнт / MXE / USR / i686-w64-mingw32.static / включить
MXE_LIB_PATH = / мнт / MXE / USR / i686-w64-mingw32.static / Библиотека
i686-w64-mingw32.static-QMAKE-qt5 \
BOOST_LIB_SUFFIX = -mt \
BOOST_THREAD_LIB_SUFFIX = _win32-т \
BOOST_INCLUDE_PATH = $ MXE_INCLUDE_PATH / увеличить \
BOOST_LIB_PATH = $ MXE_LIB_PATH \
OPENSSL_INCLUDE_PATH = $ MXE_INCLUDE_PATH / OpenSSL \
OPENSSL_LIB_PATH = $ MXE_LIB_PATH \
BDB_INCLUDE_PATH = $ MXE_INCLUDE_PATH \
BDB_LIB_PATH = $ MXE_LIB_PATH \
MINIUPNPC_INCLUDE_PATH = $ MXE_INCLUDE_PATH \
MINIUPNPC_LIB_PATH = $ MXE_LIB_PATH \
QMAKE_LRELEASE = / мнт / MXE / USR / i686-w64-mingw32.static / qt5 / бен / lrelease blackcoin-qt.pro
сделать -f Makefile.Release
Обобщение:
Код:
./compile-blk.sh
И это все.
Наш blackcoin-qt.exe помещается в / мнт / blackcoin / выпуска
Надеюсь, что это кому-то помочь