浏览/编译bitshares源代码的配置
Bitshares-core 源代码使用c++开发,由于代码量比较多,项目复杂,只用文本编辑器来浏览代码是肯定不够的。在浏览代码的过程中经常需要来回跳转,查找声明和引用,而且要充分理解源码,在阅读的过程中,我们应该还会尝试修改部分代码,并重新编译看看有什么改变。
windows平台下,bitshares-core 目前只支持使用visual studio 2015 update 3进行编译,visual studio 2017 编译不了(开发者已经确认是ide自身的bug,并反馈给微软了,但是别人好像比较高冷,一直没解决这个问题)。最新版本的已经可以应vs 2017 编译了。
windows下要自己下载boost openssl 等库的源码,并进行编译,还需要安装cmake、perl等工具。
windows平台下用msys2 中的gcc进行编译,我也尝试过了,最后失败了,失败的原因是mingw-gcc在连接生成二进制代码时报代码段过多的错误,超出了限制。(具体原因我没有深究,因为这确实超出了我的技术能力,我只想好好生生地看会bitshares源代码)所以我建议,如果你不是特别有时间,也不要折腾在msys2环境下编译bitshares了。
linux下,我最开始用的是ubuntu 16.04 ,现在我用的是manjaro发行版本,主要是方便,可以安装最新的软件。
安装好manjaro后,需要:
先执行命令: sudo pacman -S base-devel cmake clang boost openssl
然后安装visual studio code
克隆源代码 git clone https://github.com/bitshares/bitshares-core.git
进入bitshares-core 目录 cd bitshares-core
切换到develop分支 git checkout develop
克隆子模块源代码 git submodule foreach –recursive git pull origin master
最后可以用viusal studio code 打开bitshares-core 目录,安装必要的插件(ms-vscode.cpptools),并设置好include directory就可以开始浏览了。
c_cpp_properites.json 内容如下:
{
“configurations”: [
{
“name”: “Linux”,
“browse”: {
“path”: [
“${workspaceFolder}”
],
“limitSymbolsToIncludedHeaders”: true
},
“includePath”: [
“${workspaceFolder}”,
“${workspaceRoot}/libraries”,
“${workspaceRoot}/libraries/app/include”,
“${workspaceRoot}/libraries/chain/include”,
“${workspaceRoot}/libraries/db/include”,
“${workspaceRoot}/libraries/egenesis/include”,
“${workspaceRoot}/libraries/fc/include”,
“${workspaceRoot}/libraries/net/include”,
“${workspaceRoot}/libraries/plugins/include”,
“${workspaceRoot}/libraries/utilities/include”,
“${workspaceRoot}/libraries/wallet/include”
],
“defines”: [],
“compilerPath”: “/usr/bin/clang”,
“cStandard”: “c11”,
“cppStandard”: “c++11”,
“intelliSenseMode”: “clang-x64”
}
],
“version”: 4
}