win7上vs201编译比特币

一openssl编译
1, 安装ActivePerl软件 
运行cmd,输入perl -v,然后回车,出现perl
2, 安装NASM   也可以不用
3, 以管理员进入开发人员命令行 cd openssl
编译release32位:
perl Configure VC-WIN32 no-asm -prefix=D:\bitcoin\openssl-1.0.2s\mybuild
b、编译release64位:
perl Configure VC-WIN64A no-asm -prefix=E:\mylib\openssl
 c、编译debug32位:
perl Configure debug-VC-WIN32 no-asm -prefix=E:\mylib\openssl
d、编译debug64位:
perl Configure debug-VC-WIN64A no-asm -prefix=E:\mylib\openssl
成功,目录下会出现makefile文件

4  32位ms\do_ms.bat或ms\do_nasm.bat
   64位ms\do_win64a.bat
   执行这一步之后,在ms目录下会生成nt.mak和ntdll.mak两个编译配置文件 
nt.mak 用于生成静态lib库 
ntdll.mak 用于生成动态dll库
5 静态
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
动态
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install

或输入 nmake -f makefile进行编译

二zeromq编译
https://github.com/zeromq/libzmq/releases下载4.2.5版本,直接
编译成功

三berkeleydb编译
http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
下载,直接编译
四leveldb编译
用cmake编译

五secp256k1编译
项目地址为:https://github.com/bitcoin-core/secp256k1
下载下来,建一个mybuild目录,手工创建vs2017静态工程,把代码添加进去
在secp2546k.c文件中增加
#define USE_BASIC_CONFIG 1
#include "basic-config.h"
在base-config.h中增加
#define ECMULT_GEN_PREC_BITS 4
可编译成功

六libevent编译
1) 先增加环境变量OPENSSL_ROOT_DIR
2) cmd中进入mybuild,然后cmake ../就可以 生成sln文件, 

七boost编译
直接进入目录,双击运行脚本bootstrap.bat,编译boost编译引擎(Building Boost.Build engine)。等待几分钟,就会编译出b2.exe和bjam.exe,

@ECHO OFF

ECHO Building Boost lib, vs2017

bjam.exe install --prefix="boost_1_70_vs2017" --toolset=msvc-14.1 architecture=x86 address-model=32  link=static runtime-link=static threading=multi debug release

如果编译32位,则使用architecture=x86 address-model=32  
如果编译64为,则使用architecture=x86 address-model=64
其中architecture=x86指定cpu为x86系列,address-model指定使用32位地址还是64位地址;
八 protobuf编译
直接cmake编译

九编译bitcoin
项目地址https://github.com/bitcoin/bitcoin
在powershell下运行命令进入bitcoin\build_msvc,然后运行python msvc-autogen.py.生成工程文件,然后打开bitcoin.sln
配置依赖库include路径和库路径
libleveldb编译成功
libsecp256k1编译成功
libunivalue编译成功
libbitcoin_crypto编译成功
libbitcoinconsensus直接编译成功
libbitcoin_common增加boost编译成功
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\include\boost-1_70
libbitcoin_cli增加boost编译成功
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\include\boost-1_70
libbitcoin_util增加boost, openssl,libevent编译成功
D:\bitcoin\openssl-1.0.2s\mybuild\include
D:\bitcoin\libevent-master\mybuild\include

bitcoin-cli工程增加增加boost,libevent编译成功
库目录
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\lib
D:\bitcoin\libevent-master\mybuild\lib\Debug
D:\bitcoin\openssl-1.0.2s\mybuild\lib
event_openssl.lib
event_core.lib
event.lib
event_extra.lib
libeay32.lib
ssleay32.lib
成功生成bitcoin-cli.exe

bitcoin工程
对于库
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\lib
D:\bitcoin\libevent-master\mybuild\lib\Debug
D:\bitcoin\openssl-1.0.2s\mybuild\lib
D:\bitcoin\libzmq-4.2.5\bin\Win32\Debug\v141\static
D:\bitcoin\openssl-1.0.2s\mybuild\lib
event_openssl.lib
event_core.lib
event.lib
event_extra.lib
db.lib
libzmq.lib
libeay32.lib
ssleay32.lib
编译成功
bitcoin-cli 和 bitcoind 是一对的,bitcoind 后台运行,bitcoin-cli 提供界面操作
而 bitcoin-qt 是完整的比特币程序,bitcoin-tx 可以发起交易行为的客户端

libbitcoin_zmq工程增加libzmq,boost后编译成功
D:\bitcoin\libzmq-4.2.5\include

libbitcoin_server工程 增加boost,libevent,libzmq, db4.8后编译成功 libbitcoin_server.lib
D:\bitcoin\libzmq-4.2.5\include
D:\bitcoin\db-4.8.30.NC\build_windows

libbitcoin_wallet, libbitcoin_wallet_tool工程增加boost,db4.8后编译成功
bitcoin-wallet工程增加boost,db4.8
库文件D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\lib
D:\bitcoin\db-4.8.30.NC\build_windows\Win32\debug  db.lib

bitcoin-wallet项目未成功

对于编译bitcoin-tx工程,生成exe
关于库
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\lib
D:\bitcoin\openssl-1.0.2s\mybuild\lib
就可以生成了
libeay32.lib
ssleay32.lib

对于编译libbitcoin_qt工程:
1,安装qt-opensource-windows-x86-msvc2013_64_opengl-5.3.2
2,common.qt.init.vcxproj文件中改一个路径,
改成D:\bitcoin\qt5-5.7.1-vs2015\qt5-x86-static-debug
3,增加D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\include\boost-1_70
D:\bitcoin\db-4.8.30.NC\build_windows
开始编译,出错QTime的问题, 换成5.7版本ok

对于编译bitcoin-qt工程
$(QtIncludes)
库文件
D:\bitcoin\boost_1_70_0\boost_1_70_vs2017\lib
D:\bitcoin\qt5-5.7.1-vs2015\qt5-x86-static-debug\lib
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
qtpngd.lib
qtpcred.lib
qtharfbuzzngd.lib
Qt5Networkd.lib
Qt5PlatformSupportd.lib
qtfreetyped.lib字体
imm32.lib
winmm.lib
D:\bitcoin\qt5-5.7.1-vs2015\qt5-x86-static-debug\plugins\platforms
Qwindowsd.lib
D:\bitcoin\libevent-master\mybuild\lib\Debug
event_openssl.lib
event_core.lib
event.lib
event_extra.lib
D:\bitcoin\db-4.8.30.NC\build_windows\Win32\debug  db.lib

D:\bitcoin\libzmq-4.2.5\bin\Win32\Debug\v141\static
libzmq.lib
D:\bitcoin\openssl-1.0.2s\mybuild\lib
libeay32.lib
ssleay32.lib

发布了48 篇原创文章 · 获赞 7 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/wenxinfly/article/details/103043011
今日推荐