Ответ по кросс-компиляции

1) Можно сделать по-простому, использованием скриптов:

https://github.com/CryptoManiac/novabuild

Правда, они не обновлялись давно и для сборки библиотек Qt там нужен ручной пинок. Плюс там используются старые версии библиотек. Позже обновим до актуального состояния, хотя на самом деле это не является необходимостью… Смысл публикации скриптов в том, чтобы легче было понять сам процесс. Smiley

2) Можно сделать вручную.

Скачиваем:

boost_1_55_0
qrencode-3.4.2
db-6.0.20
miniupnpc-1.8
openssl-1.0.1f

Распаковываем.

Накладываем патч на файл build/Jamfile.v2
: $(sources)
      : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
        <define>BOOST_IOSTREAMS_USE_DEPRECATED
 -      [ ac.check-library /zlib//zlib : <library>/zlib//zlib
 -        <source>zlib.cpp <source>gzip.cpp ]
      :
      : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
      ;

Накладываем патч на win_db.h
-#include <WinIoCtl.h>
+#include <winioctl.h>

Затем собираем.

Сборка qrencode:
./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --disable-sdltest --without-tools --without-tests
make

Сборка OpenSSL:
./Configure mingw64 no-asm no-shared --prefix=/usr/x86_64-w64-mingw32
make depend
make

Сборка Berkeley DB:
cd build_unix
../dist/configure --host=x86_64-w64-mingw32 --disable-replication --enable-cxx --enable-mingw
make

Сборка miniupnpc делается скриптом:
sed -i 's/CC = gcc/CC = x86_64-w64-mingw32-gcc/' Makefile.mingw
sed -i '/\twingenminiupnpcstrings $< $@/d' Makefile.mingw
echo "#ifndef __MINIUPNPCSTRINGS_H__" > miniupnpcstrings.h
echo "#define __MINIUPNPCSTRINGS_H__" >> miniupnpcstrings.h
echo "#define OS_STRING \"MSWindows/5.1.2600\"" >> miniupnpcstrings.h
echo "#define MINIUPNPC_VERSION_STRING \"1.8\"" >> miniupnpcstrings.h
echo "#endif" >> miniupnpcstrings.h
                
sed -i 's/\tdllwrap/\tx86_64-w64-mingw32-dllwrap/' Makefile.mingw
sed -i 's/driver-name gcc/driver-name x86_64-w64-mingw32-gcc/' Makefile.mingw
AR=x86_64-w64-mingw32-ar make -f Makefile.mingw

Сборка boost:
./bootstrap.sh --without-icu
./bjam toolset=gcc target-os=windows variant=release threading=multi threadapi=win32 --user-config=user-config.jam -j 2 --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged stage
x86_64-w64-mingw32-ranlib stage/lib/*

Затем можно собирать демон, прописав в мейкфайле соответствующие пути.

Если будет собираться еще и Qt клиент, то нужно собрать еще и qt-everywhere-opensource-src-4.8.*.

Ну и еще следует отметить, что shared-сборку OpenSSL, Berkeley DB или Qt включать не нужно. Это создаст дополнительные проблемы, не дав преимуществ.

Quote from: yo-blin on January 23, 2014, 10:06:12 AM

кстати давно хотел спросить что надо править в коде чтобы ускоренно (но после 30 дней) рожать валидные POS блоки ? Roll Eyes

Можно изменить интервал между попытками сборки генерации kernel’а, для этого в тестовых сборках появился параметр -minersleep. По умолчанию он принимает значение 500. Но быстрее блоки от этого генерироваться не станут в любом случае.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *