源码编译适合于有丰富开发经验的用户,编译过程中需要下载依赖库,请保持网络畅通。

受网络和机器配置影响,编译用时5-20分钟不等。

请务必保证机器能够访问githubusercontent.com,否则可能会因为网络不通阻塞编译!

FSICO-BCOS使用通用CMake构建系统生成特定平台的构建文件,这意味着无论您使用什么操作系统工作流都非常相似:

  1. 从代码仓库克隆代码。

    • 默认使用github链接FISCO BCOS
    • 若出现网络问题导致长时间拉取代码失败,可使用gitee连接FISCO-BCOS
  2. 安装构建工具和依赖包(依赖于平台)。
  3. 运行cmake生成构建文件并编译。

1. 克隆代码

git clone https://github.com/FISCO-BCOS/FISCO-BCOS.git -b master
# 若出现网络问题导致长时间拉取代码失败,可执行以下命令:
git clone https://gitee.com/FISCO-BCOS/FISCO-BCOS.git -b master

2. 安装依赖

推荐Ubuntu 16.04以上版本,源码编译时需要先安装gcc等工具。

sudo apt install -y g++ libssl-dev openssl cmake git build-essential autoconf texinfo flex patch bison libgmp-dev zlib1g-dev automake libtool

若无法下载,则可以先更新一下源https://shijianfeng.blog.csdn.net/article/details/118527019

3. 编译

推荐使用Ubuntu 18.04以上版本。

cd FISCO-BCOS
mkdir -p build && cd build
cmake ..
# 高性能机器可添加-j4使用4核加速编译
make -j4

编译完成后二进制文件位于FISCO-BCOS/build/bin/fisco-bcos

可以将其拷贝替换原区块链中的fisco-bcos可执行文件,比如我的在

拷贝之前需要先停止区块链

cp bin/fisco-bcos /home/shijianfeng/fisco/nodes/127.0.0.1/

注解

  • 如果因为网络问题导致长时间无法下载依赖库,请尝试从 https://gitee.com/FISCO-BCOS/LargeFiles/tree/master/libs 下载,放在FISCO-BCOS/deps/src/
  • 如果编译过程中长时间没有相应,一般是不能访问githubusercontent.com导致依赖无法下载,请使用代理或修改hosts使得机器能够访问githubusercontent.com

4. 编译选项介绍

  • TESTS,默认off,单元测试编译开关。通过cmake -DTESTS=on ..打开单元测试开关。
  • DEMO,默认off,测试程序编译开关。通过cmake -DDEMO=on ..打开单元测试开关。
  • TOOL,默认off,工具程序编译开关。通过cmake -DTOOL=on ..打开工具开关,提供FISCO节点的rocksdb读取工具。
  • ARCH_NATIVE,默认off,编译时根据本地CPU指令优化以获得更好的性能,在ARM架构上编译可以使用此选项。GCC9以上版本编译暂未适配完成,可以通过打开此编译选项避过问题,完成编译。
  • BUILD_STATIC,默认off,静态编译开关,只支持Ubuntu。通过cmake -DBUILD_STATIC=on ..打开静态编译开关。
  • CMAKE_BUILD_TYPE,默认RelWithDebInfo,编译类型,如要编译Release版本,通过cmake -DCMAKE_BUILD_TYPE=Release ..设置
  • DEBUG,默认off,调试模式,编译后会打印将要提交的数据,性能大幅降低,仅用于开发查问题。

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/compile.html?highlight=%E6%BA%90%E7%A0%81#fisco-bcos

问题

1.源码编译慢

1.1 case1: 先前没有编译过源码

修改/etc/hosts文件,添加如下内容可加速依赖包的下载:

13.250.177.223 github.com
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
31.13.87.9 github.global.ssl.fastly.net
185.199.111.133 github.map.fastly.net
185.199.109.133 raw.githubusercontent.com

注解

以上域名对应的ip可能会有变更,若在/etc/hosts中加了以上内容后,源码编译仍然很慢,请使用域名查询工具查询并更新这些域名对应的IP

1.2 case2: 以前编译过源码

若先前有一套编译完成的环境,可从原先环境的deps/src目录下拷贝已经下载好的依赖包到当前正在编译项目的deps/src目录下

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/faq/compile.html?highlight=%E6%BA%90%E7%A0%81#case1

FISCO BCOS源码(6)编译源码 获取FISCO BCOS可执行程序相关推荐

  1. linux 源码包编译,源码包编译安装

    程序包编译安装: Application-VERSION-release.src.rpm–> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装 源代码 –> 预处理 ...

  2. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  3. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南

    Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...

  4. android 清华镜像,清华镜像网站下载android源码并编译

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 下载android源码方法: 我的系统是ubuntu 18.04,主要参考了blog通过清华大学镜像下载Android源 ...

  5. Android FrameWork学习(一)Android 7.0系统源码下载\编译

    重点内容 转载. http://blog.csdn.net/cjpx00008/article/details/60474883 硬件环境要求 1. 编译环境 按照官方的说法,编译Android 2. ...

  6. android源码下载,编译及编译时遇到的错误整理

    一.环境搭建 因为android的源码编译只支持linux和mac,所以无法在windows下编译.我的电脑也没有双系统,因此只有装一个虚拟机.我用的是VMware workstation 我放到了百 ...

  7. android系统源码7.1.2_r8下载,编译,运行到nexus5X上,修改源码并编译SDK进行测试

    一,学习android系统源码下载,编译的作用 1,可以自己 DIY 自己的rom系统,从系统层面,宏观的加深理解 android系统 2,编译自己的 userdebug(原生root权限) rom, ...

  8. Windows下PCL1.9.1配置(编译源码)

    PCL1.9.1并没有支持vs2015版本的exe版本,然后需要下载PCL的源码重新自己CMake编译出vs2015版本的 编译的目的: 1.得到支持vs2015的版本的PCL1.9.1 前期准备 1 ...

  9. ubuntu 编译源码包 dsc diff.gz orig.tar.gz

    2019独角兽企业重金招聘Python工程师标准>>> 1) 在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项以tree实用程 ...

  10. Day13 目录结构自定义Yum仓库源码包编译安装(Service02)

    一.linux一级目录 man hier可以查看所有一级目录的作用 1.1 /bin 普通用户使用的常用命令 1.2 /boot 系统引导必须的文件,包括内核.启动配置 1.3 /dev 键盘.硬盘. ...

最新文章

  1. IDC公司:服务器类微处理器市场最新预测
  2. 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数
  3. 在Windows95/98中实现苹果窗口界面
  4. Android 点击跳转到蓝牙设置界面
  5. 山东理工大计算机专业学什么科目,2020年山东理工大学计算机科学与技术学院880数据结构硕士研究生入学考试科目大纲...
  6. CodeForces - 1350E Orac and Game of Life(bfs)
  7. 动态代理,动态代理设计模式 ,JDK动态代理,cglib动态代理
  8. Linux中配置ftp服务器
  9. 2018年云栖社区值得订阅的11个精选技术期刊!
  10. 为什么需要建设中台?
  11. SignalR的Javascript客户端API使用方式整合
  12. 前端面试instanceof_【面试准备】每日前端面试题 45 (前端校招字节跳动面试4)...
  13. Linux系统字体下载
  14. 智和网管平台SugarNMS网络安全解决方案
  15. the content must be served over HTTPS
  16. Latex科技论文写作
  17. 昨天面试题目--软件--SQL--后感
  18. 什么是Kodu---Kodu少儿编程第一天
  19. dos2unix和unix2dos命令
  20. 计算机一级扫描件,学院年终科研成果统计提交成果扫描件要求

热门文章

  1. 【ASP.NET】 GriedView 增删改查+ 自带分页
  2. 关于N82后摄像头拍照无法启动的超强技术解决方案
  3. 使用C语言读写xlsx文件
  4. Subway Pursuit (二分)(交互题)
  5. GUI编程(一)-----概述
  6. linux中mysql基本操作
  7. iOS开发之理解iOS中的MVC设计模式
  8. char 数组和 int 之间转化
  9. 孙鑫VC学习笔记:第十六讲 (一) 利用事件对象实现线程间的同步
  10. 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念