24a2aeff45cd013032215bc3a7991149eb40ca17
[novacoin.git] / doc / building novacoind and novacoinqt under Windows with MSVC.txt
1 \feff1. Подготовка системы.
2 Внимание: данная инструкция (включая сопутствуюшие файлы) расчитана на сборку в среде Windows 64-bit.
3
4 1.1 Установка архиватора 7z: http://www.7-zip.org/ 
5 (при написании инструкции использовался 7-Zip 9.20 64 bit X64, но скорее всего подойдёт любая версия)
6
7 1.2 Установка Visual Studio 2012. (Подойдёт даже бесплатная версия)
8 http://www.microsoft.com/ru-ru/download/details.aspx?id=34673
9 Установить обновление Visual Studio 2012 Update 4
10 http://www.microsoft.com/ru-ru/download/details.aspx?id=39305
11
12 1.3 Установка Perl(при написании инструкции использовался ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi)
13 http://www.activestate.com/activeperl/downloads
14 Убедитесь что после установки Perl в PATH есть пути(у меня Perl был установлен на диск C:\) C:\Perl\site\bin;C:\Perl\bin;
15
16 1.4 Установка Python(подойдёт и 2 версия и 3 версия)(при написании инструкции использовался Python 3.3.3)
17 https://www.python.org/downloads/
18 Убедитесь что после установки Python в PATH есть путь до python.exe
19
20 1.5 Установка Nasm (при написании инструкции использовался nasm-2.07-installer.exe)
21 http://sourceforge.net/projects/nasm/files/latest/download
22 Убедитесь что после установки Nasm в PATH есть путь до Nasm.exe 
23
24 2. Построение зависимостей.
25 В инструкции все зависимости сохраняются в папку C:\MyProjects\Deps
26 Скопируйте папку build-helpers(находится в архиве с исходниками в папке MSVC) и вставьте в папку C:\MyProjects\Deps
27
28 2.1 OpenSSL 
29 -Скачайте http://www.openssl.org/source/openssl-1.0.2.tar.gz
30 -Распакуйте архив в папку C:\MyProjects\Deps
31 -Откройте командную строку Windows и выполните следующий код:
32
33 cd C:\MyProjects\Deps\build-helpers
34 buildopenssl.bat
35
36
37 2.2 Berkeley DB
38 -Скачайте http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
39 -Распакуйте архив в папку C:\MyProjects\Deps
40 -Запустите Visual Studio 2012
41 -Откройте C:\MyProjects\Deps\db-6.0.20\build_windows\Berkeley_DB_vs2010.sln
42 -Выберете проект db
43 -Измените конфигурацию с Debug на Static Debug
44 -Нажмите правой кнопкой мыши на  проект db, затем в "Свойства" -> "Общие" убедитесь, что Набор символов "Использовать многобайтовую кодировку"
45 -Перейдите в "C/C++" -> "Препроцессор" -> "Определения препроцессора" и удалите _UNICODE и UNICODE, также убедитесь, что в Унаследованных значениях нет 
46 _UNICODE и UNICODE
47 -Нажмите правой кнопкой мыши на  проект db, затем "Только проект" -> "Построить только db"
48 -Постройте так все Static конфигурации(Static Debug 32 bit, Static Release 32 bit, Static Debug X64, Static Release X64)
49
50 Проверка:
51 Если вы всё сделали правильно то у вас будут файлы:
52 C:\MyProjects\Deps\db-6.0.20\build_windows\Win32\Static Release\libdb60s.lib
53 C:\MyProjects\Deps\db-6.0.20\build_windows\Win32\Static Debug\libdb60sd.lib
54 C:\MyProjects\Deps\db-6.0.20\build_windows\x64\Static Release\libdb60s.lib
55 C:\MyProjects\Deps\db-6.0.20\build_windows\x64\Static Debug\libdb60sd.lib
56
57 2.3 Boost
58 -Скачайте http://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.7z/download
59 -Распакуйте boost_1_57_0.7z в папку C:\MyProjects\Deps
60 -Откройте командную строку Windows и выполните следующий код:
61
62 cd C:\MyProjects\Deps\build-helpers
63 buildboost.bat
64
65 2.4 Miniupnpc
66 -Скачайте http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.20131209.tar.gz
67 -Распакуйте 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. 
68 -Переименуйте папку в miniupnpc.
69 -Если вам нужна поддержка Windows XP, то откройте файл miniupnpc.c и добавьте после всех инклудов #undef IF_NAMESIZE 
70 -Откройте командную строку Windows и выполните следующий код:
71
72 cd C:\MyProjects\Deps\build-helpers
73 buildminiupnpc.bat
74
75 2.5 qrencode
76 -Скачайте http://qrencode-win32.googlecode.com/archive/681f2ea7a41f919486d9932b3352a2e6920e1cb9.zip
77 -Распакуйте
78 -Откройте командную строку Windows и выполните следующий код:
79
80 cd C:\MyProjects\Deps\build-helpers
81 buildqrcode.bat
82
83 2.6 Qt 5
84 -Скачайте http://download.qt-project.org/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.7z
85 -Распакуйте в C:\MyProjects\Deps
86 -Если вам нужна поддержка 64 bit, то переименуйте папку qt-everywhere-opensource-src-5.3.2 в qt-everywhere-opensource-src-5.3.2-64
87 (если вам нужна возможность строить и 32 bit и 64 bit бинарники, то у вас должны быть обе папки и qt-everywhere-opensource-src-5.3.2-64 и qt-everywhere-opensource-src-5.3.2 )
88 -Откройте командную строку Windows и выполните следующий код:
89
90 cd C:\MyProjects\Deps\build-helpers
91 buildqt32.bat 
92
93 или для 64 bit
94
95 cd C:\MyProjects\Deps\build-helpers
96 buildqt64.bat
97
98
99 3. Компиляция
100 Будем хранить исходники в папке C:\MyProjects
101
102 3.0 Подготовка Microsoft Visual Studio 2012 к работе
103 -Откройте Microsoft Visual Studio 2012
104 -Нажмите СЕРВИС -> Параметры.. -> Текстовый редактор -> Все языки -> Табуляция и поставьте флажок "Вставлять пробелы"
105 (Если у вас английская версия, то это выглядит так: Tools->Options->Text Editor->All Languages->Tabs и поставьте флажок "Insert Spaces" вместо "Keep Tabs".)
106
107 3.1 Скачиваем исходники
108 -Зайдите на сайт https://github.com/novacoin-project/novacoin 
109 -Нажмите Download ZIP
110 -Распакуйте novacoin-master.zip в C:\MyProjects
111 -переименуйте novacoin-master в Novacoin
112
113 3.2 Компиляция
114 -Откройте Microsoft Visual Studio 2012
115 -Откройте файл C:\MyProjects\Novacoin\MSVC\NovacoinSolution.sln
116 -Можете компилировать и NovacoinD и NovacoinQT 
117 (по-умолчанию выставлена компиляция с LevelDB, если вы хотите компилировать с BerkleyDB, то
118 -Выберете проект libcommon, перейдите в свойства -> С\С++ -> Препроцессор, удалите USE_LEVELDB
119 -Удалите из проекта libcommon libcommon -> Source Files -> txdb-leveldb.cpp и добавьте в проект
120 txdb-bdb.cpp
121 -Удалите из проекта libcommon libcommon -> Header Files -> txdb-leveldb.h и добавьте в проект
122 txdb-bdb.h
123 -Выберете проект NovacoinD, перейдите в свойства -> С\С++ -> Препроцессор, удалите USE_LEVELDB
124 -Выберете проект NovacoinQT, перейдите в свойства -> С\С++ -> Препроцессор, удалите USE_LEVELDB
125
126 Если вы хотите уменьшить размер бинарных файлов, то
127 1) Перейдите на сайт http://upx.sourceforge.net/#downloadupx
128 2) Скачайте программу в соответсвии с вашей системой
129 3) Распакуйте программу в папку с бинарными Novacoin файлами.
130 4) Введите в консоли
131 upx -9 NovacoinD.exe
132 затем
133 upx -9 NovacoinQT.exe
134
135 И ваши NovacoinD и NovacoinQT станут меньше ~ в 3 раза.