多语言展示
当前在线:1565今日阅读:60今日分享:41

编译bitcoin早期版本bitcoin-0.3.0

bitcoin的早期代码体积小,对于学习比特币技术和区块链技术比较友好,相对容易入门,学会如何编译可以在必要的时候修改代码测试。
工具/原料
1

装有windows系统的电脑

2

mingw、msys和perl

下载软件
1

下载bitcoin-0.3.0源码。下载地址:https://github.com/bitcoin/bitcoin/releases?after=v0.3.12下载完成后解压并打开build-msw.txt,里边说明了需要的依赖和工具。

2

下载依赖。OpenSSL:https://github.com/openssl/openssl/releases?after=OpenSSL_1_0_0 Berkeley DB: https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html Boost:https://sourceforge.net/projects/boost/files/boost/1.40.0/bjam:https://sourceforge.net/projects/boost/files/boost-jam/3.1.18/ wxWidgets:https://sourceforge.net/projects/wxwindows/files/2.9.0/

编译openssl
1

解压得到源码后,首先修改engines\e_gmp.c和engines\e_capi.c文件,将 #include 用宏#ifndef OPENSSL_NO_RSA包起来。

2

打开ms\mingw32.bat,将perl Configure mingw %1 %2 %3 %4 %5 %6 %7 %8替换为perl Configure mingw threads no-rc2 no-rc4 no-rc5 no-idea no-des no-bf no-cast no-aes no-camellia no-seed no-rsa no-dh。将mingw32-make行后的if errorlevel 1 goto end前加rem。

3

打开cmd导航到openssl目录,运行ms\mingw32.bat编译,编译完成后会报错,先不管。

4

查看out下是否生成了libeay32.a,如果生成就表示成功了。此外需要将outinc下的文件复制到include下。

编译Berkeley DB
1

编译db需要用msys命令行工具。首先解压得到源码,打开msys并cd到build_unix,运行sh ../dist/configure --enable-mingw --enable-cxx来配置和生成makefile,成功后运行make命令进行编译。

2

编译完成后进入db\build_unix目录查看是否生成libdb_cxx.a文件

编译wxwidgets
1

解压得到源码,打开cmd命令行,cd到wxwidgets\build\msw目录下,运行命令mingw32-make -f makefile.gcc进行编译。

2

打开wxwidgets\lib\查看是否生成gcc_lib目录,如果有进入gcc_lib查看是否生成了一系列.a库。

编译boost
1

编译boost需要用到bjam,解压得到源码和bjam并把bjam移动到boost源码根目录下。

2

打开cmd命令行,cd到boost根目录,运行命令bjam toolset=gcc --build-type=complete stage。boost编译时间非常长,需要耐心等待。

3

编译完成后进入boost\stage\lib查看是否有一系列.lib文件生成。

编译bitcoin客户端
1

OK,终于可以开始编译bitcoin了。前面提到的依赖目录与bitcoin目录是平级关系,并且依赖的目录名称与bitcoin中makefile.mingw中的名字不一样,所以根据makefile中的文件名重命名一下依赖的目录,同时将makefile.mingw中依赖路径前加上 .. 表示在上级目录寻找依赖目录,否则会从根目录找导致出错。

2

运行make编译会报没有obj目录错误,所以在bitcoin根目录下新建obj目录

3

打开cmd命令行,cd到bitcoin根目录,运行命令mingw32-make -f makefile.mingw进行编译。

4

编译完成后会生成bitcoin.exe,但这个版本是无法连接到主链的,只能学习使用咯。

注意事项
1

不要将msys的bin路径添加到环境变量,否则编译wxwidgets出错

2

尽可能保持版本一致,不同的编译器版本和依赖版本可能会有变化,导致编译出错

3

如果报未定义的错误,查看是否makefile中路径和文件实际路径不符,导致找不到头文件

4

网上有视频,无法链接过来,可自行搜索查看

推荐信息