4 1.1 Установка архиватора 7z: http://www.7-zip.org/
5 (при написании инструкции использовался 7-Zip 9.20 64 bit X64, но скорее всего подойдёт любая версия)
7 1.2 Установка msys shell:
8 -Скачайте http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
10 -директория для установки C:\MinGW
11 -поставить галочку напротив "...also install support for the graphical user interface."
12 -убрать галочки напротив "..in the start menu, and/or .." "... on the desktop"
15 -нажмите All Packages, затем MSYS
16 -поставте галочки напротив:
21 -нажмите Installation, Apply Changes, Apply. После завершения установки нажмите Close и закройте MinGW Installation Manager.
23 1.3 Установка MinGW-builds project toolchain:
24 Скачайте http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.1/threads-posix/dwarf/i686-4.9.1-release-posix-dwarf-rt_v3-rev1.7z/download
27 1.4 Добавьте в переменную PATH путь C:\mingw32\bin;
28 Подробное описание как это сделать на Windows 8, Windows 7, Windows XP и Windows Vista
29 https://www.java.com/ru/download/help/path.xml
30 (только не нужно выполнять последний пункт из этой инструкции "Откройте заново окно командной строки и выполните код java." )
32 Проверка что вы всё сделали правильно:
33 1)C:\MinGW\bin должен содержать только файл mingw-get.exe
34 2)Откройте Командную строку (Нажмите кнопку Windows + R одновременно. Откроется окно "Выполнить", в поле открыть наберите cmd. Нажмите Ok). Наберите gcc -v. В командной строке выведется текст. В конце текста должно быть написано:
36 gcc version 4.9.1 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)
38 2. Построение зависимостей.
39 В инструкции все зависимости сохраняются в папку c:\deps
42 -Скачайте http://www.openssl.org/source/openssl-1.0.1j.tar.gz
43 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
44 Из MinGw shell выполните следующий код:
47 tar xvfz openssl-1.0.1j.tar.gz
49 Configure no-shared no-dso mingw
53 -Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
54 -Из MinGw shell выполните следующий код:
57 tar xvfz db-6.0.20.tar.gz
58 cd db-6.0.20/build_unix
59 ../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
63 -Скачайте http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.7z/download
64 -Распакуйте boost_1_55_0.7z в папку C:\deps
65 -Откройте командную строку Windows, и выполните следующий код:
67 cd C:\deps\boost_1_55_0\
69 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
72 -Скачайте http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.20131209.tar.gz
73 -Распакуйте miniupnpc-1.8.20131209.tar.gz с помощью 7z. (Распаковать нужно 2 раза, нажмите на файле miniupnpc-1.8.20131209.tar.gz левой кнопкой мыши и выберите 7-Zip, затем Распаковать здесь. Появится файл miniupnpc-1.8.20131209.tar. С ним аналогично, левая кнопка мыши -> 7-Zip -> Распаковать здесь. Появится папка miniupnpc-1.8.20131209. Переименуйте её в miniupnpc.
74 -Откройте командную строку Windows, и выполните следующий код:
77 mingw32-make -f Makefile.mingw init upnpc-static
80 -Скачайте http://prdownloads.sourceforge.net/libpng/libpng-1.6.12.tar.gz?download
82 -Откройте MinGw shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
84 cd /c/deps/libpng-1.6.12
85 configure --disable-shared
87 cp .libs/libpng16.a .libs/libpng.a
89 -Скачайте http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
91 -Выполните следующий код в MinGW shell:
93 cd /c/deps/qrencode-3.4.4
95 LIBS="../libpng-1.6.12/.libs/libpng.a ../../mingw32/i686-w64-mingw32/lib/libz.a" \
96 png_CFLAGS="-I../libpng-1.6.12" \
97 png_LIBS="-L../libpng-1.6.12/.libs" \
98 configure --enable-static --disable-shared --without-tools
103 Библиотеки Qt будем хранить в папке C:\Qt
104 Для ускорения компиляции вместо
107 mingw32-make -j n , где вместо n количество ядер вашего процессора
109 -Скачайте http://download.qt-project.org/official_releases/qt/5.3/5.3.2/submodules/qtbase-opensource-src-5.3.2.7z
110 http://download.qt-project.org/official_releases/qt/5.3/5.3.2/submodules/qttools-opensource-src-5.3.2.7z
112 -Переименуйте папку qtbase-opensource-src-5.3.2 в 5.3.2
113 -Откройте командную строку Windows и выполните следующий код:
115 set INCLUDE=C:\deps\libpng-1.6.12;C:\deps\openssl-1.0.1j\include
116 set LIB=C:\deps\libpng-1.6.12\.libs;C:\deps\openssl-1.0.1j
120 configure.bat -release -opensource -confirm-license -static -make libs -no-sql-sqlite -no-opengl -system-zlib -qt-pcre -no-icu -no-gif -system-libpng -no-libjpeg -no-freetype -no-angle -no-vcproj -openssl -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debug
124 set PATH=%PATH%;C:\Qt\5.3.2\bin
126 cd C:\Qt\qttools-opensource-src-5.3.2
133 -Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
135 -Переименуйте папку qt-everywhere-opensource-src-4.8.6 в 4.8.6
136 -Откройте командную строку Windows и выполните следующий код:
140 configure -release -opensource -confirm-license -static -no-sql-sqlite -no-qt3support -no-opengl -qt-zlib -no-gif -qt-libpng -qt-libmng -no-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -nomake demos -nomake examples
146 Будем хранить исходники в папке C:\MyProjects
148 3.1 Скачиваем исходники
149 -Зайдите на сайт https://github.com/novacoin-project/novacoin
150 -Нажмите Download ZIP
151 -Распакуйте novacoin-master.zip в C:\MyProjects
153 3.2 Собираем novacoind
154 -Перейдите в папку C:\MyProjects\novacoin-master\src
155 -Откройте файл makefile.mingw в текстовом редакторе.(При написании инструкции использовался WordPad)
156 -Поменяйте USE_UPNP:=0 на USE_UPNP:=1
157 -Поменяйте текущие INCLUDEPATHS, LIBPATHS, LIBS на:
159 BOOST_SUFFIX?=-mgw49-mt-s-1_55
163 -I"$(CURDIR)/zerocoin" \
164 -I"/c/deps/boost_1_55_0" \
166 -I"/c/deps/db-6.0.20/build_unix" \
167 -I"/c/deps/openssl-1.0.1j/include"
170 -L"$(CURDIR)/leveldb" \
171 -L"/c/deps/boost_1_55_0/stage/lib" \
172 -L"/c/deps/miniupnpc" \
173 -L"/c/deps/db-6.0.20/build_unix" \
174 -L"/c/deps/openssl-1.0.1j"
179 -l boost_system$(BOOST_SUFFIX) \
180 -l boost_filesystem$(BOOST_SUFFIX) \
181 -l boost_program_options$(BOOST_SUFFIX) \
182 -l boost_thread$(BOOST_SUFFIX) \
183 -l boost_chrono$(BOOST_SUFFIX) \
188 -Поменяйте LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat на
189 LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static
191 -Если вы хотите использовать LevelDB как базу блоков то добавьте в файл MinGW:
195 cd leveldb; make; cd ..
197 cd leveldb; TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a; cd ..
200 obj/txdb-leveldb.o: leveldb/libleveldb.lib
202 obj/txdb-leveldb.o: leveldb/libleveldb.a
204 Если вы хотите использовать BerkeleyDB как базу блоков, то просто удалите строчку USE_LEVELDB:=1
206 -Сохраните измененный файл makefile.mingw
208 -Откройте MinGW shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
210 cd /c/MyProjects/novacoin-master/src
211 make -f makefile.mingw
215 Fatal error: can't create obj/zerocoin/Accumulator.o: No such file or directory
216 make: *** [obj/zerocoin/Accumulator.o] Error 1
217 Она происходит если нет папки C:\MyProjects\novacoin-master\src\obj\zerocoin . Так что при удалении obj файлов следите, чтобы папка C:\MyProjects\novacoin-master\src\obj\zerocoin не удалилась вместе с obj файлами.)
219 Если всё сделано правильно, то файл novacoind.exe будет находится в папке C:\MyProjects\novacoin-master\src
222 3.3 Собираем Novacoin QT
224 Внимание: Если вы хотите собирать Novacoin Qt с LevelDB, но пропустили шаг со сборкой novacoind.exe, то
225 -Откройте MinGW shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
227 cd /c/myprojects/novacoin-master/src/leveldb
228 TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a
230 -Откройте файл C:\MyProjects\novacoin-master\novacoin-qt.pro в текстовом редакторе(при написании инструкции использовался WordPad)
232 # Dependency library locations can be customized with:
233 # BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
234 # BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
235 замените прописанные пути к зависимостям на
237 BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
238 BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
239 BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
240 BDB_INCLUDE_PATH=C:/deps/db-6.0.20/build_unix
241 BDB_LIB_PATH=C:/deps/db-6.0.20/build_unix
242 OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
243 OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
244 MINIUPNPC_INCLUDE_PATH=C:/deps/
245 MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
246 QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
247 QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
249 Так же измените(если ещё не изменено)
251 genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
256 #genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
258 Если в файле нет такой строчки CONFIG += static , то добавьте её.
261 win32:QMAKE_LFLAGS........................
263 win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static
265 -Сохраните измененный файл novacoin-qt.pro
266 -Откройте командную строку Windows и выполните следующий код:
268 Qt5 + транзакционный индекс BDB
270 set PATH=%PATH%;C:\Qt\5.3.2\bin
271 cd C:\MyProjects\novacoin-master
272 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" novacoin-qt.pro
273 mingw32-make -f Makefile.Release
276 Qt5 + транзакционный индекс LevelDB
278 set PATH=%PATH%;C:\Qt\5.3.2\bin
279 cd C:\MyProjects\novacoin-master
280 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" novacoin-qt.pro
281 mingw32-make -f Makefile.Release
283 Qt4 + транзакционный индекс BDB
285 set PATH=%PATH%;C:\Qt\4.8.6\bin
286 cd C:\MyProjects\novacoin-master
287 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" novacoin-qt.pro
288 mingw32-make -f Makefile.Release
290 Qt4 + транзакционный индекс LevelDB
292 set PATH=%PATH%;C:\Qt\4.8.6\bin
293 cd C:\MyProjects\novacoin-master
294 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" novacoin-qt.pro
295 mingw32-make -f Makefile.Release
299 Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release
304 1.1 Так же как 32 bit
306 1.2 Так же как 32 bit
308 1.3 Установка MinGW-builds project toolchain:
309 Скачайте http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.1/threads-posix/seh/x86_64-4.9.1-release-posix-seh-rt_v3-rev1.7z/download
312 1.4 Удалите из переменной PATH путь C:\mingw32\bin; и добавьте в PATH путь C:\mingw64\bin;
314 Проверка что вы всё сделали правильно:
315 1)C:\MinGW\bin должен содержать только файл mingw-get.exe
316 2)Откройте Командную строку (Нажмите кнопку Windows + R одновременно. Откроется окно "Выполнить", в поле открыть наберите cmd. Нажмите Ok). Наберите gcc -v. В командной строке выведется текст. В конце текста должно быть написано:
318 gcc version 4.9.1 (x86_64-posix-seh-rev1, Built by MinGW-W64 project)
320 2. Построение зависимостей.
321 В инструкции все зависимости сохраняются в папку c:\deps\x64
323 2.1 OpenSSL: http://www.openssl.org/source/openssl-1.0.1j.tar.gz
324 -Перейдите в папку C:\MinGW\msys\1.0 и запустите msys.bat
325 Из MinGw shell выполните следующий код:
328 tar xvfz openssl-1.0.1j.tar.gz
330 Configure no-shared no-dso mingw64
333 2.2 Так же как 32 bit, только cd /c/deps/ меняется на cd /c/deps/x64/
335 2.3 Так же как 32 bit, только распаковка в C:\deps\x64 и команда cd C:\deps\boost_1_55_0\ меняется на cd C:\deps\x64\boost_1_55_0\
337 2.4 Так же как 32 bit, только распаковка в C:\deps\x64 и заменить cd C:\deps\miniupnpc на cd C:\deps\x64\miniupnpc
339 2.5 Часть с libpng так же как 32 bit, только распаковка в C:\deps\x64
341 -Скачайте http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
342 -Распакуйте в C:\deps\x64
343 -Выполните следующий код в MinGW shell:
345 cd /c/deps/x64/qrencode-3.4.4
347 LIBS="../libpng-1.6.12/.libs/libpng.a ../../../mingw64/x86_64-w64-mingw32/lib/libz.a" \
348 png_CFLAGS="-I../libpng-1.6.12" \
349 png_LIBS="-L../libpng-1.6.12/.libs" \
350 configure --enable-static --disable-shared --without-tools
356 Библиотеки Qt будем хранить в папке C:\Qt
357 Для ускорения компиляции вместо
360 mingw32-make -j n , где вместо n количество ядер вашего процессора
362 -Скачайте http://download.qt-project.org/official_releases/qt/5.3/5.3.2/submodules/qtbase-opensource-src-5.3.2.7z
363 http://download.qt-project.org/official_releases/qt/5.3/5.3.2/submodules/qttools-opensource-src-5.3.2.7z
365 -Переименуйте папку qtbase-opensource-src-5.3.2 в 5.3.2-x64
366 -Откройте командную строку Windows и выполните следующий код:
368 set INCLUDE=C:\deps\x64\libpng-1.6.12;C:\deps\x64\openssl-1.0.1j\include
369 set LIB=C:\deps\x64\libpng-1.6.12\.libs;C:\deps\x64\openssl-1.0.1j
373 configure.bat -release -opensource -confirm-license -static -make libs -no-sql-sqlite -no-opengl -system-zlib -qt-pcre -no-icu -no-gif -system-libpng -no-libjpeg -no-freetype -no-angle -no-vcproj -openssl -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debug
377 set PATH=%PATH%;C:\Qt\5.3.2-x64\bin
379 cd C:\Qt\qttools-opensource-src-5.3.2-x64
384 -Скачайте http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
386 -Переименуйте папку qt-everywhere-opensource-src-4.8.6 в 4.8.6-x64
387 -Откройте командную строку Windows и выполните следующий код:
389 configure -release -opensource -confirm-license -static -no-sql-sqlite -no-qt3support -no-opengl -qt-zlib -no-gif -qt-libpng -qt-libmng -no-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -nomake demos -nomake examples
394 Будем хранить исходники в папке C:\MyProjects
396 3.1 Так же как 32 bit
398 3.2 Собираем novacoind
399 -Измените makefile.mingw так же как в 32 bit
400 -Откройте файл makefile.mingw в текстовом редакторе и сохраните его как makefile.ming64
401 -Измените в INCLUDEPATHS и LIBPATHS /c/deps/ на /c/deps/x64/
403 LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static
405 LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,-static, -static-libgcc
406 -Удалите (если они есть)obj(.o) файлы из C:\MyProjects\novacoin-master\src\obj и C:\MyProjects\novacoin-master\src\obj\zerocoin , если остались после 32 bit
407 -Удалите (если они есть)libleveldb.a и libmemenv.a в папке C:\MyProjects\novacoin-master\src\leveldb
408 -Удалите (если они есть)obj(.o) файлы из
409 C:\MyProjects\novacoin-master\src\leveldb\db
410 C:\MyProjects\novacoin-master\src\leveldb\helpers\memenv
411 C:\MyProjects\novacoin-master\src\leveldb\port
412 C:\MyProjects\novacoin-master\src\leveldb\table
413 C:\MyProjects\novacoin-master\src\leveldb\util
414 -Откройте MinGW shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
416 cd /c/MyProjects/novacoin-master/src
417 make -f makefile.mingw64
421 Fatal error: can't create obj/zerocoin/Accumulator.o: No such file or directory
422 make: *** [obj/zerocoin/Accumulator.o] Error 1
423 Она происходит если нет папки C:\MyProjects\novacoin-master\src\obj\zerocoin . Так что при удалении obj файлов следите, чтобы папка C:\MyProjects\novacoin-master\src\obj\zerocoin не удалилась вместе с obj файлами.)
425 Если всё сделано правильно, то файл novacoind.exe будет находится в папке C:\MyProjects\novacoin-master\src
428 3.3 Собираем Novacoin QT
429 Внимание: Если вы хотите собирать Novacoin Qt с LevelDB, но пропустили шаг со сборкой novacoind.exe, то
430 -Удалите (если они есть)libleveldb.a и libmemenv.a в папке C:\MyProjects\novacoin-master\src\leveldb
431 -Удалите (если они есть)obj(.o) файлы из
432 C:\MyProjects\novacoin-master\src\leveldb\db
433 C:\MyProjects\novacoin-master\src\leveldb\helpers\memenv
434 C:\MyProjects\novacoin-master\src\leveldb\port
435 C:\MyProjects\novacoin-master\src\leveldb\table
436 C:\MyProjects\novacoin-master\src\leveldb\util
437 -Откройте MinGW shell (C:\MinGW\msys\1.0\msys.bat) и выполните следующий код:
439 cd /c/myprojects/novacoin-master/src/leveldb
440 TARGET_OS=NATIVE_WINDOWS make libleveldb.a libmemenv.a
442 -Измените файл novacoin-qt.pro так же как в 32 bit
443 -Откройте файл novacoin-qt.pro в текстовом редакторе и сохраните его как novacoin-qt64.pro
444 -Замените в INCLUDE и LIB путях текст C:/deps на текст C:/deps/x64 (то есть вместо C:/deps/boost_1_55_0 нужно C:/deps/x64/boost_1_55_0 и т.д.)
446 win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static
448 win32:QMAKE_LFLAGS *= -Wl,-static
450 -Откройте командную строку Windows и выполните следующий код:
452 Qt5 + транзакционный индекс BDB
454 set PATH=%PATH%;C:\Qt\5.3.2-x64\bin
455 cd C:\MyProjects\novacoin-master
456 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" novacoin-qt64.pro
457 mingw32-make -f Makefile.Release
460 Qt5 + транзакционный индекс LevelDB
462 set PATH=%PATH%;C:\Qt\5.3.2-x64\bin
463 cd C:\MyProjects\novacoin-master
464 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" novacoin-qt64.pro
465 mingw32-make -f Makefile.Release
467 Qt4 + транзакционный индекс BDB
469 set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
470 cd C:\MyProjects\novacoin-master
471 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" novacoin-qt64.pro
472 mingw32-make -f Makefile.Release
474 Qt4 + транзакционный индекс LevelDB
476 set PATH=%PATH%;C:\Qt\4.8.6-x64\bin
477 cd C:\MyProjects\novacoin-master
478 qmake "USE_QRCODE=1" "USE_UPNP=1" "USE_IPV6=1" "USE_LEVELDB=1" novacoin-qt64.pro
479 mingw32-make -f Makefile.Release
481 Если всё сделано правильно, то файл novacoin-qt.exe будет находится в папке C:\MyProjects\novacoin-master\release