zoukankan      html  css  js  c++  java
  • emqx源码编译

    以下,||分界线||之上的内容已经不适用了,可以略过,继续往下看

    1  下载  github上下载

    2  找台虚拟机,安装编译所需的环境,erlang   make等

    3  执行make命令

    重点说一下第3步:

    主要是make命令报错

    解释:执行make命令后,依赖包全部自动下载到deps文件夹内,自动执行编译,但是这个过程中,这些依赖往往缺少一些文件等,可以手动去修改依赖包的makefile

    比如 gen_logger报错,可以把哪些已经通过make的依赖包中的makefile拿过来,放到这个文件夹下

     上图是一个能用的makefile内容,我是把lager  直接修改成为gen_logger(不改,直接把makefile拿过来,也能用。。。),这样就可以通过编译了,当然如果报错缺少文件,从其他依赖包里拿过来就行(下图报错缺少tools.mk)

     再次执行,可以看到 已经不包 gen_logger相关的错误了,说明这个gen_logger依赖已经通过下载、编译过程了,

    4  拿到编译后的文件,运行

    --------------------------------------------------------------------------------------------------

                                                      分界线

    --------------------------------------------------------------------------------------------------

    大家可以理解为:以上内容是本人编译emq 2版本遇到的问题,而且解决方法很不成熟,不建议参考

    由于看到有人转载,怕误导大家,我再说明一下

    以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版本  与emq 2版本,编译后文件位置不同,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

  • 相关阅读:
    ECMAScript 6学习笔记(二):let和块级作用域
    ECMAScript 6学习笔记(一):展开运算符
    JavaScript的作用域和闭包
    HTML中行内元素的竖直方向的padding和margin是否真的无效
    <input type="text"/>未输入时属性value的默认值--js学习之路
    Matlab 之 FFT的理解和应用
    .NET 5.0实现Consul服务注册
    面向对象编程思想(OOP)
    又再回归一次
    阿里云的OCS缓存机制
  • 原文地址:https://www.cnblogs.com/myfrank/p/10176332.html
Copyright © 2011-2022 走看看