centos 7.2 下为erlang添加protobuffs

安装前提:

1.已经安装好erlang otp

2.配置了rebar (配置方法:http://www.cnblogs.com/panfeng412/archive/2011/08/14/2137990.html

3.安装git  (centos:yum install git           ubantu:sudo apt install git)

在rebar.config中的deps中加入protobuffs

{deps, [{protobuffs,".*",{git,"https://github.com/basho/erlang_protobuffs.git",""}},
         {‘goldrush‘,".*",{git,"https://github.com/extend/goldrush.git","mastter"}},
         {‘proper‘, ".*", {git,"https://github.com/manopapad/proper.git", "master"}},
         {‘lager‘,".*",{git, "https://github.com/erlang-lager/lager.git","master"}}]}.

  

然后执行 ./rebar get-deps

在get-deps过程中会下载 meck(protobuffs的依赖库)和protobuffs两个依赖库。

到这里之后你可以在src下新建一个test.proto文件

test.proto文件:

message Person {
     required int32 age = 1;
     required string name = 2;
 }

 message Family {
     repeated Person person =1;
 }

  

然后执行编译命令   ./rebar clean compile

会发现在rebar 同级目录生成了一个include文件夹,里面包含一个test.hrl的文件,打开会看到如下:

这就是proto编译生成头文件。

其实到这里整个protobuffs就算可以用了,但我们为了结构的清晰不希望所有的文件都放在src中,(我希望我的协议文件都在在和src同级的proto文件夹下)。

因为rebar的文档中并没有写如何配置,只是给出了src_dirs这个参数可以设置其他的源文件的地址,但直接在rebar.config中加入{src_dirs,["proto"]}并没有用,然后在rebar源码中找到关于对protobuffs的编译代码,rebar_proto_comiler.erl文件

  

这里设置了读取config的proto_opts项,然后下面会有src_dirs,这里的如果没有配置的时候默认是src文件夹,所以其实src_dirs是配在proto_opts下的,参照rebar.config.sample,

这是例子中给出的配置:

  

然后我将自己的也配置成了下面这样,

  

完成之后,在src同级目录下新建一个proto文件夹,然后在里面创建*.proto文件,再执行./rebar compile 的时候就会编译proto下的协议文件。

时间: 2024-08-05 21:59:41

centos 7.2 下为erlang添加protobuffs的相关文章

Centos 6&7下服务启动方法及添加到开机启动

在linux系统中,安装完一个软件或应用后,有时候需要手动启动该应用,也需要收到将该应用添加到开机启动项中,让其可以能够在linux一开机后就加载该应用 启动应用的方法 CentOS 6 : service SERVICE start|stop|restart|reload|status CentOS 7 : systemctl start|stop|restart|reload|status SERVICE 添加到开机启动项的方法 CentOS 6 : chkconfig SERVICE on

Centos 6 下安装 erlang 手记

基于openfire的IM项目已经成功上线,接下来的计划准备开始调研 ejabberd. ejabberd  是基于erlang开发的,那么就先从搭建 erlang环境开始吧. 选择的操作系统为Centos6 ,erlang的最新版OTP17.0: 1. 下载最新版erlang otp_17.0 2. 解压缩 tar -zxvf otp_src_17.0 3. 进入解压缩后的目录 4. ./configure --prefix=/opt/erlang  --without-javac 出现错误大

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

在VirtualBox中的CentOS 6.3下安装VirtualBox增强包

在VirtualBox中安装好客户操作系统(GuestOS)之后,建议安装VirtualBox增强包(VirtualBox GuestAddition),它的作用是对GuestOS的性能和可用性进行优化(也就是提高GuestOS的性能和提升使用者的使用体验). GuestAddition实质上是安装在GuestOS上的一组驱动程序和应用程序. 注意,很多人把下载的增强包双击之后,看到VirtualBox的"全局设定"--"扩展"中已经显示出了增强包的名字就认为已经安

Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入(1)

一.本系列分为6部分 1.Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入 2.Centos 6.5 下安装 Zabbix server 服务器的安装及 监控主机的加入 3.zabbix server的Discover功能,实现zabbix agent 大批量的自动添加,并链接到指定的模版 4.zabbix 报警方式之 邮件报警 5.zabbix 报警方式之 微信公众号报警 6.zabbix server 端的优化工作(解决mysql 性能下降,以及zab

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

CentOS 6.4下Squid代理服务器的安装与配置

一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPH

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

CentOS 5.6下创建KVM虚拟机

首先要保证你的CPU支持虚拟化.执行以下命令查看CPU的flag信息,里面包含svm的flag就说明支持虚拟化: [[email protected] ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxe