浏览/编译bitshares源代码的配置

in #cn6 years ago

Bitshares-core 源代码使用c++开发,由于代码量比较多,项目复杂,只用文本编辑器来浏览代码是肯定不够的。在浏览代码的过程中经常需要来回跳转,查找声明和引用,而且要充分理解源码,在阅读的过程中,我们应该还会尝试修改部分代码,并重新编译看看有什么改变。

windows平台下,bitshares-core 目前只支持使用visual studio 2015 update 3进行编译,visual studio 2017 编译不了(开发者已经确认是ide自身的bug,并反馈给微软了,但是别人好像比较高冷,一直没解决这个问题)。

windows下要自己下载boost openssl 等库的源码,并进行编译,还需要安装cmake、perl等工具。

windows平台下用msys2  中的gcc进行编译,我也尝试过了,最后失败了,失败的原因是mingw-gcc在连接生成二进制代码时报代码段过多的错误,超出了限制。(具体原因我没有深究,因为这确实超出了我的技术能力,我只想好好生生地看会bitshares源代码)所以我建议,如果你不是特别有时间,也不要折腾在msys2环境下编译bitshares了。

linux下,我最开始用的是ubuntu 16.04 ,配置过程见我的博客http://www.cwyyprog.com/2017/08/18/ubuntu-%E4%B8%8B%E4%BD%BF%E7%94%A8vs-code-%E9%98%85%E8%AF%BBbitshares-core-%E6%BA%90%E7%A0%81%E7%9A%84%E9%85%8D%E7%BD%AE/

现在我用的是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
}

Coin Marketplace

STEEM 0.26
TRX 0.20
JST 0.037
BTC 94943.31
ETH 3575.42
USDT 1.00
SBD 3.76