博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos 7.2 下为erlang添加protobuffs
阅读量:5101 次
发布时间:2019-06-13

本文共 1358 字,大约阅读时间需要 4 分钟。

安装前提:
1.已经安装好erlang otp 
2.配置了rebar (配置方法:)
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下的协议文件。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ACshasow/p/6964512.html

你可能感兴趣的文章
RN-环境配置
查看>>
【AMAD】schema -- 使用pythonic的方式进行schema验证
查看>>
20160601 工作总结
查看>>
结合element-ui封装的一个分页函数
查看>>
matlab--sum函数用法
查看>>
WCF未找到终结点
查看>>
来来,一起设计一个简单的活动发布系统
查看>>
页面加载速度优化的建议
查看>>
pandas(python2) 读取中文数据,处理中文列名
查看>>
技术文章-Java类的继承
查看>>
汇编实验三
查看>>
Android中的Intent详细讲解【转】
查看>>
浅谈javascript和java中的字符串
查看>>
ASP.NET WebAPI构建API接口服务实战演练
查看>>
Auth 认证模块
查看>>
【实例】原生 js 实现全屏滚动效果
查看>>
atitit.java解析sql语言解析器解释器的实现
查看>>
Ubuntu18.04安装
查看>>
struts2文件下载及文件名中文问题
查看>>
使用原生Java代码生成可执行Jar包
查看>>