比特币0.9.2中文版编译手册日期:2014-07-01 构建比特币源码,是一件十分费时费力的工作,尤其在windows系统中编译比特币源码更加的麻烦,经过一两天努力,终于在windows7 64位系统中成功编译出了比特币源文件。
现在总结如下,首先准备一套干净的windows7 64位操作系统,最好是使用vbox或者vmware 虚拟机建立一个专用系统,这样的可以防止其它干扰导至编译失败,接下来说说,我的编译过程:1.安装msys系统msys作用是在windows系统中重建linux系统编译环境,在msys系统下操作,就像linux 中的操作一样,具有相同的语法命令。
从下面的网址中下载msys最新版:/projects/mingw/files/Installer/mingw-get-setup.exe/download然后运行mingw-get-setup.exe文件后,选择安装目录为H:\MinGW,之后软件会首先更新下载库,更新成功会弹出一个窗口MinGW installation manager,在这个窗口中,只下载msys相关的包文件,不要下载mingw相关文件,因为不使用它带的这个mingw。
主要如下面所示:msys-base-binmsys-autoconf-binmsys-automake-binmsys-libtool-bin选择好之后,点击Installation->Apply changes即可。
一定要确保mingw包没有被下载,这里我们只需要msys相关系统,也要确保msys-gcc和msys-w32api等包没有被下载,否则当我们执行编译时,可能会调用这些不该出现的包文件,而导至编译失败。
2.安装perl系统由于在编译比特币时,需要调用一些perl脚本,所以从下面的网址中下载一个perl安装程序,然后安装即可。
/ActivePerl/releases/5.18.1.1800/ActivePerl-5.18.1.1800-M SWin32-x64-297570.msi3.安装python同样还需要用到python环境,这里下载最新版的pytnon3.4.0版,并安装它。
在安装时,注意选择add python to path.https:///ftp/python/3.4.0/python-3.4.0.amd64.msi4.安装MinGW下载安装最新版的mingw 4.9.0版本,i686-4.9.0-release-posix-dwarf-rt_v3-rev2.7z通过下面的网址可以下载:/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Persona l%20Builds/mingw-builds/4.9.0/threads-posix/dwarf/i686-4.9.0-release-posix-dwarf-rt_v3-rev2.7z /download将这个mingw包中文件全部解压到H盘的mingw32目录内,你可根据自己的需要解压到合适位置。
安装后应该如下图所示:5.设置环境变量在桌面上,鼠标右键计算机图标,在弹出菜单中选择属性,在弹出窗口中,在左侧边栏中,选择高级系统设置,接着选择高级选项卡中的环境变量按钮,在弹出窗口中,将系统变量中的path,添加H:\mingw32\bin,而perl和python安装后,会自动进行设置变量,如果没有,也应添加进来,如下面所示:H:\MinGW32\bin;C:\Python34\;C:\Python34\Scripts;D:\Perl64\site\bin;D:\Perl64\bin;6.检测编译环境是否正确首先检查H:\MinGW\bin目录中,确保目录中只有一个mingw-get.exe文件。
然后运行控制台cmd,在命令行中输入gcc -v,将会看到如下面所示,则环境正确:7.下载并编译相关文件包本文中,将用到所有相关文件包,都下载到了H:\deps目录中了,所以在接下来的编译过程中,将围绕这个目录。
7.1 OpenSSL: /source/openssl-1.0.1h.tar.gz启动msys(h:\MinGW\msys\1.0\msys.bat),然后使用下面的命令解压并编译OpenSSL 文件。
cd /h/deps/tar xvfz openssl-1.0.1h.tar.gzcd openssl-1.0.1hConfigure no-shared no-dso mingwmake可以上将面的文件包存为openssl.sh文件,然后msys中直接运行这个文件即可。
在这里要注意的是,也不知道什么原因,有时候使用这种脚本方式运行时,会发现命令处理到一半时,就提前退出了,我在我电脑中发现,经常不会运行最后make命令,如果你发现脚本没有make时,可以直接继续输入make即可。
编译完成后,将会如下图所法界面所示:7.2 Berkeley DB: /berkeley-db/db-4.8.30.NC.tar.gz在这里,最好是下载db-4.8.30.NC.tar.gz版本,其它版本不一定能用,依然是从msys 中进行编译DB数据库,命令如下所示:cd /h/deps/tar xvfz db-4.8.30.NC.tar.gzcd db-4.8.30.NC/build_unix../dist/configure --enable-mingw --enable-cxx --disable-shared --disabl e-replicationmake7.3 Boost: /projects/boost/files/boost/1.55.0/这里使用最新版的boost 1.55.0,下载之后,将文件解压到H:\deps\boost_1_55_0内。
然后启动windows命令控制台cmd,然后使用下面的命令进行编译,请注意下面的b2命令是一行命令(不要在msys中运行下面的命令,否则不能成功,boost编译时间较长):cd h:\deps\boost_1_55_0\bootstrap.bat mingwb2 --build-type=complete --with-chrono --with-filesystem --with-progr am_options --with-system --with-thread toolset=gcc variant=release li nk=static threading=multi runtime-link=static stageb2命令中设置,会将boost的编译结果复制到h:\deps\boost_1_55_0\stage内。
7.4 Miniupnpc:http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.tar.gz先在msys系统中,使用tar命令解压miniupnpc-1.9.tar.gz,命令如下:cd /h/deps/tar xvfz miniupnpc-1.9.tar.gz将解压出来的miniupnpc-1.9文件夹,重新命名为minupnpc,接着在windows命令控制台cmd中,编译miniupnpc,命令如下所示:cd h:\deps\miniupnpcmingw32-make -f Makefile.mingw init upnpc-static7.5 protoc和libprotobuf :/files/protobuf-2.5.0.zip然后使用winrar或者7zip将它解压,然后接着在msys中执行下面的命令,编译它们:cd /h/deps/protobuf-2.5.0configure --disable-sharedmake7.6 libpng: /libpng/libpng-1.6.12.tar.gz?download依然是在msys中编译ligpng,命令如下所示:cd /c/deps/libpng-1.6.12configure --disable-sharedmakecp .libs/libpng16.a .libs/libpng.a7.7 qrencode: /works/qrencode/qrencode-3.4.3.tar.gz在编译qrencode时会用到libpng库,所以编译命令如下所示:tar xvfz qrencode-3.4.3.tar.gzcd /h/deps/qrencode-3.4.3LIBS="../libpng-1.6.12/.libs/libpng.a ../../mingw32/i686-w64-mingw32/lib/lib z.a" \png_CFLAGS="-I../libpng-1.6.12" \png_LIBS="-L../libpng-1.6.12/.libs" \configure --enable-static --disable-shared --without-toolsmake7.8 Qt 5.3.0编译这里要注意的是,由于比特币源码要求必须使用SSL和Zlib支持,所以只能下载QT 源码,重新编译QT。
下载地址如下所示:Qt基础包:/official_releases/qt/5.3/5.3.0/submodules/qtbase-opensource-s rc-5.3.0.7zQT工具包:/official_releases/qt/5.3/5.3.0/submodules/qttools-opensource-s rc-5.3.0.7z将QT基础包解压到h:\Qt\5.3.1目录中,将QT工具包解压到h:\Qt\qttools-opensource-src-5.3.1。
然后在windows控制台CMD中执行下面命令:set INCLUDE=c:\deps\libpng-1.6.10;h:\deps\openssl-1.0.1g\includeset LIB=c:\deps\libpng-1.6.10\.libs;h:\deps\openssl-1.0.1gcd c:\Qt\5.2.1configure.bat -release -opensource -confirm-license -static -make libs -no-sql-sqlite -no-open gl -system-zlib -qt-pcre -no-icu -no-gif -system-libpng -no-libjpeg -no-freetype -no-angle -n o-vcproj -openssl-linked -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debugmingw32-makeset PATH=%PATH%;c:\Qt\5.2.1\bincd c:\Qt\qttools-opensource-src-5.2.1qmake qttools.promingw32-make在这里,我将上面的命令保存为了一个批处理文件,但是当我执行这个批处理时,发现并没有时执行最后的mingw32-make任务,只是进行了configure操作后就停止了,所以如果在你电脑上也是这种情况的话,可以分别进入H:\Qt\5.2.1和H:\Qt\qttools-opensource-src-5.2. 1目录内,重新执行mingw32-make命令各一次。