It's a c++: use string.clear()
[novacoin.git] / doc / building novacoind and novacoinqt under Windows with MinGW.txt
index a7ae17a..885b7fb 100644 (file)
@@ -39,23 +39,23 @@ gcc version 4.9.2 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)
 В инструкции все зависимости сохраняются в папку c:\deps
 
 2.1 OpenSSL 
--Скачайте http://www.openssl.org/source/openssl-1.0.1j.tar.gz
+-Скачайте https://openssl.org/source/openssl-1.0.2.tar.gz
 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
 Из MinGw shell выполните следующий код:
 
 cd /c/deps/
-tar xvfz openssl-1.0.1j.tar.gz
-cd openssl-1.0.1j
+tar xvfz openssl-1.0.2.tar.gz
+cd openssl-1.0.2
 Configure no-shared no-dso mingw
 make
 
 2.2 Berkeley DB
--Скачайте http://download.oracle.com/berkeley-db/db-6.1.19.tar.gz
+-Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
 -Из MinGw shell выполните следующий код:
 
 cd /c/deps/
-tar xvfz db-6.1.19.tar.gz
-cd db-6.1.19/build_unix
+tar xvfz db-6.0.20.tar.gz
+cd db-6.0.20/build_unix
 ../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
 make
 
@@ -68,15 +68,7 @@ cd C:\deps\boost_1_57_0\
 bootstrap.bat mingw
 b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
 
-2.4 Miniupnpc
--Скачайте http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.20141128.tar.gz
--Распакуйте miniupnpc-1.9.20141128.tar.gz с помощью 7z. (Распаковать нужно 2 раза, нажмите на файле miniupnpc-1.9.20141128.tar.gz левой кнопкой мыши и выберите 7-Zip, затем Распаковать здесь. Появится файл miniupnpc-1.9.20141128.tar. С ним аналогично, левая кнопка мыши -> 7-Zip -> Распаковать здесь. Появится папка miniupnpc-1.9.20141128. Переименуйте её в miniupnpc.
--Откройте командную строку Windows, и выполните следующий код:
-
-cd C:\deps\miniupnpc
-mingw32-make -f Makefile.mingw init upnpc-static
-
-2.5 qrencode
+2.4 qrencode
 -Скачайте http://download.sourceforge.net/libpng/libpng-1.6.15.tar.gz?download
 -Распакуйте
 -Откройте MinGw shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
@@ -99,7 +91,7 @@ configure --enable-static --disable-shared --without-tools
 
 make
 
-2.6 Qt 5 и Qt 4
+2.5 Qt 5 и Qt 4
 Библиотеки Qt будем хранить в папке C:\Qt
 Для ускорения компиляции  вместо 
 mingw32-make 
@@ -114,8 +106,8 @@ http://download.qt-project.org/official_releases/qt/5.4/5.4.0/submodules/qttrans
 -Переименуйте папку qtbase-opensource-src-5.4.0 в 5.4.0
 -Откройте командную строку Windows и выполните следующий код:
 
-set INCLUDE=C:\deps\libpng-1.6.15;C:\deps\openssl-1.0.1j\include
-set LIB=C:\deps\libpng-1.6.15\.libs;C:\deps\openssl-1.0.1j
+set INCLUDE=C:\deps\libpng-1.6.15;C:\deps\openssl-1.0.2\include
+set LIB=C:\deps\libpng-1.6.15\.libs;C:\deps\openssl-1.0.2
 
 cd C:\Qt\5.4.0
 
@@ -158,7 +150,6 @@ mingw32-make
 3.2 Собираем novacoind 
 -Перейдите в папку C:\MyProjects\novacoin-master\src
 -Откройте файл makefile.mingw в текстовом редакторе.(При написании инструкции использовался WordPad)
--Поменяйте USE_UPNP:=0 на USE_UPNP:=1
 -Добавьте  строчку USE_ASM:=1
 -Поменяйте текущие INCLUDEPATHS, LIBPATHS, LIBS на:
 
@@ -168,15 +159,14 @@ INCLUDEPATHS= \
  -I"$(CURDIR)" \
  -I"/c/deps/boost_1_57_0" \
  -I"/c/deps" \
- -I"/c/deps/db-6.1.19/build_unix" \
- -I"/c/deps/openssl-1.0.1j/include"
+ -I"/c/deps/db-6.0.20/build_unix" \
+ -I"/c/deps/openssl-1.0.2/include"
  
 LIBPATHS= \
  -L"$(CURDIR)/leveldb" \
  -L"/c/deps/boost_1_57_0/stage/lib" \
- -L"/c/deps/miniupnpc" \
- -L"/c/deps/db-6.1.19/build_unix" \
- -L"/c/deps/openssl-1.0.1j"
+ -L"/c/deps/db-6.0.20/build_unix" \
+ -L"/c/deps/openssl-1.0.2"
 
 LIBS= \
   -l leveldb \
@@ -247,12 +237,10 @@ TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a
 BOOST_LIB_SUFFIX=-mgw49-mt-s-1_57
 BOOST_INCLUDE_PATH=C:/deps/boost_1_57_0
 BOOST_LIB_PATH=C:/deps/boost_1_57_0/stage/lib
-BDB_INCLUDE_PATH=C:/deps/db-6.1.19/build_unix
-BDB_LIB_PATH=C:/deps/db-6.1.19/build_unix
-OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
-OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
-MINIUPNPC_INCLUDE_PATH=C:/deps/
-MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
+BDB_INCLUDE_PATH=C:/deps/db-6.0.20/build_unix
+BDB_LIB_PATH=C:/deps/db-6.0.20/build_unix
+OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.2/include
+OPENSSL_LIB_PATH=C:/deps/openssl-1.0.2
 QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
 QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
 
@@ -272,6 +260,11 @@ win32:QMAKE_LFLAGS........................
 на 
 win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static 
 
+Измените 
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX -Wl,-Bstatic -lpthread -Wl,-Bdynamic
+на
+windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
+
 -Сохраните измененный файл novacoin-qt.pro
 -Откройте командную строку Windows и выполните следующий код:
 
@@ -279,7 +272,7 @@ Qt5 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\5.4.0\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 
@@ -287,27 +280,38 @@ Qt5 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\5.4.0\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\4.8.6\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\4.8.6\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt.pro
 mingw32-make -f Makefile.Release
 
 
 
 Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
 
+Если вы хотите уменьшить размер бинарных файлов, то
+1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
+2) Скачайте программу в соответсвии с вашей системой
+3) Распакуйте программу в папку с бинарными Novacoin файлами.
+4) Введите в консоли
+upx -9 novacoind.exe
+затем
+upx -9 novacoin-qt.exe
+
+И ваши novacoind и novacoin-qt станут меньше ~ в 3 раза.
+
 
 
 64 bit:
@@ -330,13 +334,13 @@ gcc version 4.9.2 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
 2. Построение зависимостей.
 В инструкции все зависимости сохраняются в папку c:\deps\x64
 
-2.1  OpenSSL: http://www.openssl.org/source/openssl-1.0.1j.tar.gz
+2.1  OpenSSL: http://www.openssl.org/source/openssl-1.0.2.tar.gz
 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
 Из MinGw shell выполните следующий код:
 
 cd /c/deps/x64/
-tar xvfz openssl-1.0.1j.tar.gz
-cd openssl-1.0.1j
+tar xvfz openssl-1.0.2.tar.gz
+cd openssl-1.0.2
 Configure no-shared no-dso mingw64
 make
 
@@ -344,9 +348,7 @@ make
 
 2.3 Так же как 32 bit, только распаковка в C:\deps\x64 и команда cd C:\deps\boost_1_57_0\ меняется на cd C:\deps\x64\boost_1_57_0\ 
 
-2.4 Так же как 32 bit, только распаковка в C:\deps\x64 и заменить cd C:\deps\miniupnpc на cd C:\deps\x64\miniupnpc
-
-2.5 Часть с libpng так же как 32 bit, только распаковка в C:\deps\x64 
+2.4 Часть с libpng так же как 32 bit, только распаковка в C:\deps\x64 
 Затем
 -Скачайте http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
 -Распакуйте в C:\deps\x64
@@ -362,7 +364,7 @@ configure --enable-static --disable-shared --without-tools
 make
 
 
-2.6 Qt 5 и Qt 4
+2.5 Qt 5 и Qt 4
 Библиотеки Qt будем хранить в папке C:\Qt
 Для ускорения компиляции  вместо 
 mingw32-make 
@@ -378,8 +380,8 @@ http://download.qt-project.org/official_releases/qt/5.4/5.4.0/submodules/qttrans
 -Переименуйте папку qttranslations-opensource-src-5.4.0 в qttranslations-opensource-src-5.4.0-x64
 -Откройте командную строку Windows и выполните следующий код:
 
-set INCLUDE=C:\deps\x64\libpng-1.6.15;C:\deps\x64\openssl-1.0.1j\include
-set LIB=C:\deps\x64\libpng-1.6.15\.libs;C:\deps\x64\openssl-1.0.1j
+set INCLUDE=C:\deps\x64\libpng-1.6.15;C:\deps\x64\openssl-1.0.2\include
+set LIB=C:\deps\x64\libpng-1.6.15\.libs;C:\deps\x64\openssl-1.0.2
 
 cd C:\Qt\5.4.0-x64
 
@@ -465,7 +467,7 @@ Qt5 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\5.4.0-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 
@@ -473,21 +475,32 @@ Qt5 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\5.4.0-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс BDB
 
 set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
 Qt4 + транзакционный индекс LevelDB
 
 set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
 cd C:\MyProjects\novacoin-master
-qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
+qmake "USE_IPV6=1" "USE_LEVELDB=1" "USE_ASM=1" novacoin-qt64.pro
 mingw32-make -f Makefile.Release
 
-Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
\ No newline at end of file
+Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
+
+Если вы хотите уменьшить размер бинарных файлов, то
+1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
+2) Скачайте программу в соответсвии с вашей системой
+3) Распакуйте программу в папку с бинарными Novacoin файлами.
+4) Введите в консоли
+upx -9 novacoind.exe
+затем
+upx -9 novacoin-qt.exe
+
+И ваши novacoind и novacoin-qt станут меньше ~ в 3 раза.