【VS2019】编译Bitcoin Core
2020-02-02 11:38
4443 查看
前言
静态分析了Bitcoin core部分代码后,感觉自己研究的方向好像走偏了,我认为bitcoin core代码的核心在于比特币协议的实现,因此,我应该把整个研究重心放在比特币协议的实现上。
为了能够动态调试bitcoin core,提高剖析比特币协议实现的效率,我决定,通过VS编译bitcoin core。
在此过程中,遇到了诸多问题,记录于此,方便他人。
1、安装vcpkg
在使用vs编译bitcoin core之前,需要独立安装bitcoin core所需的依赖库。
为提高安装依赖库的效率,在此推荐使用vcpkg工具。
1、https://github.com/Microsoft/vcpkg
2、把vcpkg文件夹加入环境变量中,
3、cmd中执行
bootstrap-vcpkg.bat,编译vcpkg.exe
4、执行
vcpkg integrate install
至此,vcpkg安装完成!
2、使用vcpkg安装bitcoin core所需的依赖库
执行
vcpkg install --triplet x64-windows-static boost-filesystem boost-signals2 boost-test libevent openssl zeromq berkeleydb secp256k1 leveldb
在执行此命令过程中,可能会遇到如下问题:
问题一
错误信息:
Warning: The following VS instances are excluded because the English language pack is unavailable.
运行环境:Win10 x64、VS2019
原因:缺少英文语言包
解决方案:
- 打开https://visualstudio.microsoft.com/ru/downloads/,点击
Tools for Visual Studio
,下载Build Tools for Visual Studio
。 - 下载完成后,运行,选择
语言包
,点击英文
,更新。 - 更新完成,重启。
问题二
错误信息:
Error: Building package boost-build:x64-windows-static failed with: BUILD_FAILED
运行环境:Win10 x64、VS2019
原因:缺少build tools组件
解决方案:
- 运行vs_buildtools,选择
独立组件
- 选择
MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.20)
,更新。 - 更新完成,重启。
(后续编译过程中,可能还会出现同类问题,以同样方式安装MSVC v141 - VS 2017 C++ x64/x86 生成工具(v14.16)
即可。)
安装完所需的依赖库之后,便可以通过vs打开bitcoin项目了。
3、用VS2019编译bitcoin core
打开
build_msvc目录下的
bitcoin.sln文件,,生成解决方案。
在此过程中,又出现了如下问题:
问题三
编译过程中,出现
E1696 无法打开 源 文件 "boost/filesystem.hpp"错误。
解决方案一:将解决方案的活动平台从
x86改为
x64。
解决方案二:如果确实想生成32位程序的,安装32位相应的boost库即可。
两种方式可以安装32位相应的库:
方式一 愚人的笨招
1、根据VS报的错误,去安装,相应的库,例如:选中
#include <boost/filesystem/fstream.hpp>,按alt+enter,选择“将安装xxx库的vcpkg命令复制到剪辑板”
2、打开cmd,粘贴命令,安装,重启VS,再次编译,如果仍报错,执行下一步。
3、复制刚才安装好的32位boost库的目录地址(
boost/filesystem/fstream.hpp的绝对路径)。
4、在报错的模块中,右键,属性,C/C++、附加包含目录、编辑、粘贴。
5、再次编译,成功!
方式二 投机取巧的方法
1、打开cmd。
2、执行
vcpkg install --triplet x86-windows-static boost-filesystem boost-signals2 boost-test libevent openssl zeromq berkeleydb secp256k1 leveldb
问题四
在编译过程中,在
libbitcoin_wallet模块中出现
C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译错误,导致
libbitcoin_wallet模块编译失败。
解决方案:
- 右键点击
libbitcoin_wallet
模块,点击属性。 - 点击
C/C++
,命令行。 - 添加
/bigobj
选项,保存,重新编译。 - 成功!
参考文献
VS编译Bitcoin Core官方文档
vcpkg工具官方说明文档
Could not locate a complete toolset. Please install the English language pack #3842
boost-filesystem fails to install on Win10 with VS 2019 Preview #5807
error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- WIN10 VS2019下编译GDAL3.0+PROJ6+SQLite
- 解决安装vs2019后,原vs2017项目无法编译各种报错的问题
- VS2019的多文件编译方法
- VS明明定义了函数却编译出错:error LNK2019: 无法解析的外部符号
- vs2015编译gdal出错:error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function String
- VS2019 对 emWin 模拟器编译不成功的解决办法
- VS常用编译平台与制作工具
- VS低版本打开高版本解决方案(如08打开10、12、13版本vs编译的项目)
- PPAPI开发之路(二)在VS 2013上编译media_stream_video例子
- X264在VS2015环境下编译
- 在VS中使项目同时具有应用程序和动态库两种编译设置
- vs2008编译时出现问题解决方法:MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tma
- caffe vs2013 win7 64编译
- VS编译中出现“This function or variable may be unsafe”的解决方法
- VS2015中C++程序的编译,调试小技巧
- VS2013编译duilibv1.1,“找不到Riched20.lib”的问题
- VS2008 VS2013多核编译配置
- 几个VS编译器(cl.exe)命令行编译的例子
- vs2013编译ffmpeg之九 libass
- vs2013编译ffmpeg之二十六 opus、shine