以emqx4.0.7版本为例

1、安装erlang环境

可以参考:https://www.cnblogs.com/shanfeng1000/p/11951703.html

这里需要注意一下,要按照emqx官网说明,比如4.0.7版本,编译需要 Erlang/OTP R21+ ,也就是说 需要 Erlang/OTP 21版本以上的,我安装的是22.0版本的otp

安装erlang编译环境非常非常重要,大家安装好环境以后,再往下继续

2、下载源码

https://github.com/emqx/emqx

根据自己的需要选择  tag版本  我用的是4.0.7

3、执行make

我在执行make的时候发现报错,大概的意思是  rebar3命令找不到(截图懒得重现了)

那好,开始安装rebar3

我看网上大概有2种方法,一种是下载rebar3源码,然后编译;另一种是直接下载编译好的rebar3。选择第二种

比较简单的做法是:

1、下载 wget https://s3.amazonaws.com/rebar3/rebar3

2、赋权chmod +x /home/hylink/rebar3 (赋权)

3、./rebar3 local install (这一步不做好像也可以,不过还是执行一下)

4、把rebar3扔到 /usr/bin目录下(这一步的目的是环境变量,大家应该懂,也可以通过配置环境变量的方法实现,可以参考https://blog.csdn.net/ctwy291314/article/details/104550966

5、验证 rebar3 --version

4、等待make执行完毕

为什么还要写4,因为make执行非常慢,而且容易卡住,卡住后可以取消,然后再次执行make

理论上 1 2 3没问题的话,4应该会出结果,当然,还遇到其他一些问题

emqx3、emqx4版本与emq2版本编译后文件位置不同,emqx3和emqx4的是在_build文件夹内

再说一下遇到的问题

1、按照emqx官方的readme,我使用emqx-rel项目,执行make没有成功,有兴趣的小伙伴可以尝试一下,这个不是我需要的

我要修改emqx的源码,所以我是修改emqx的src下的文件后,在emqx目录内执行的make 就是截图中emqx407目录内

2、还有个问题  就是make过程中,有时候报错,大家可以多尝试几次。如果尝试多次还报相同的错误,那就要找找原因了

可以观察一下Makefile文件 如果遇到很奇怪的问题  也可以make clean(会清除所有下载的lib和plugins)  然后重新执行 make或者make compile

EMQX源码编译过程的更多相关文章

  1. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  2. 英蓓特Mars board的android4.0.3源码编译过程

    英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...

  3. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  4. nginx源码编译以及源码编译过程中遇到的问题

    本文主要讲nginx安装以及安装过程中遇到的问题. 谈到nginx 必须聊聊它的起源和发展. nginx是由俄罗斯工程师Igor Sysoev 用C语言开发的一个免费开源的Web服务器软件,于2004 ...

  5. android源码编译过程

    1.下载好android源码包. 2.装好vm,ubuntu(如果能在实体机装linux更好). 3.安装所需要的deb包 在终端执行如下命令: sudo apt-get install flex b ...

  6. spring5源码编译过程中必经的坑

    spring源码编译流程:Spring5 源码下载 第 一 步 : https://github.com/spring-projects/spring-framework/archive/v5.0.2 ...

  7. Hadoop2.7.2源码编译过程

    目录 准备工作 jar包安装 源码编译 准备工作 CentOS可以联网,验证:ping www.baidu.com 是畅通的 jar 包准备(hadoop 源码.JDK8.maven.ant .pro ...

  8. TextMate2 最新版下载及源码编译过程

    TextMate2 已经开源,我刚编译成功,如果有需要的同学可以点击下面百度网盘的链接下载.我系统版本是:Mac OS X 10.8.4. TextMate version 2.0-alpha.946 ...

  9. emqx源码编译

    1  下载  github上下载 2  找台虚拟机,安装编译所需的环境,erlang   make等 3  执行make命令 重点说一下第3步: 主要是make命令报错 解释:执行make命令后,依赖 ...

随机推荐

  1. mysql报错max_connections错误

    SELECT @@MAX_CONNECTIONS AS 'Max Connections';set GLOBAL max_connections=10000; show status like '%t ...

  2. 如何设置eclipse下查看java源码

    windows--preferences--java--installed jres --选中jre6--点击右边的edit--选中jre6/lib/rt.jar --点击右边的 source att ...

  3. 监测linux系统负载与CPU、内存、硬盘、用户数的shell脚本

    本节主要内容: 利用Shell脚本来监控Linux系统的负载.CPU.内存.硬盘.用户登录数. 一.linux系统告警邮件脚本 # vim /scripts/sys-warning.sh #!/bin ...

  4. sax方式解析XML学习笔记

    原理:对文档进行顺序扫描,当扫描到文档(document)开始与结束,元素开始与结束.文档结束等地方 通知事件处理函数,由事件处理函数相应动作然后继续同样的扫描,直至文档结束. 优点:消耗资源比较少: ...

  5. Java实现邮件收发

    一. 准备工作 1. 传输协议 SMTP协议-->发送邮件: 我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器) POP3协议-->接收邮件: 我 ...

  6. 2.9 go mod 之本地仓库搭建

    wikihttps://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release参考https://blog.csdn.net/be ...

  7. Mysql资料 视图

    目录 一.简介 二.例子 三.好处 四.工作机制 一.简介 视图是数据库中的一个虚拟的表是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 但是,视图并不在数据库中以 ...

  8. Elasticsearch核心技术(四):索引原理分析

    本文探讨Elasticsearch的数据请求.路由和写入过程的原理,主要涉及ES的分布式存储架构.节点和副本的写入过程.近实时搜索的原因.持久化机制等. 4.1 ES存储架构 我们经常说,看一件事情千 ...

  9. de1ctf_2019_weapon(爆破_IO_2_1_stdout)

    (这是我真正意义上的完完全全自己做的第一道堆题目,虽然花了快三个小时,谨以此篇纪念一下) 题目的例行检查我就不放了,将程序放入ida中 程序的逻辑十分简单,漏洞也非常明显 重点是这个程序没有给我们sh ...

  10. Hooks中的useState

    Hooks中的useState React的数据是自顶向下单向流动的,即从父组件到子组件中,组件的数据存储在props和state中,实际上在任何应用中,数据都是必不可少的,我们需要直接的改变页面上一 ...