Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5645195
  • 博文数量: 291
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7924
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 14:28
个人简介

阿里巴巴是个快乐的青年

文章分类

全部博文(291)

文章存档

2018年(21)

2017年(4)

2016年(5)

2015年(17)

2014年(68)

2013年(174)

2012年(2)

分类: Web开发

2016-12-25 11:58:15

一、依赖安装
        为了简单,这里都二进制安装。
1.protobuf
        #sudo yum install protobuf
        #sudo yum install protobuf-devel
2.python
        #sudo yum install python-protobuf
        #cd python  
        #python setup.py build  
        #python setup.py install
3.lua
        #sudo yum install lua
        #sudo yum install lua-devel
        一般都会安装到/usr/local/bin或者/usr/bin下。

二、生成pb文件
1.下载转换包
        protoc-gen-lua:下载master分支 
2.解压并编译
        #unzip protoc-gen-lua-master.zip
        #cd protoc-gen-lua-master/protobuf
        #make 

        gcc -O3 -shared -fPIC pb.c `pkg-config --cflags lua5.1` -std=gnu99 `pkg-config --libs lua5.1` -o pb.so

        Package lua5.1 was not found in the pkg-config search path.

        Perhaps you should add the directory containing `lua5.1.pc'

        to the PKG_CONFIG_PATH environment variable

        No package 'lua5.1' found

        Package lua5.1 was not found in the pkg-config search path.

        Perhaps you should add the directory containing `lua5.1.pc'

        to the PKG_CONFIG_PATH environment variable

        No package 'lua5.1' found

        pb.c:25:17: error: lua.h: No such file or directory

        错误提示的意思是缺少lua5.1.pc文件,*.pc文件一般在/usr/lib/pkgconfig或/usr/lib64/pkgconfig目录下,如果发现没有话,可以使用如下命令查看哪些安装包支持lua.pc:
        #yum provides \*/lua.pc
        通常会列出几个选项,同时会显示安装完以后,lua.pc会在哪个目录下。这里列出的安装包应该是lua-devel几个不同的版本。选第一个就行,安装完以后,相应的目录下应该就会有lua.pc了。然后在当前目录建立lua.pc的软连接:
        #ln -s /usr/lib64/pkgconfig/lua.pc lua5.1.pc
        再次make编译,这里可能还会报错,但是可以忽略之,只要生成pb.so了就OK。
        使用时将pb.so加入package.cpath中,也可以放在安装后lua的lib下,比如:/usr/local/lib/lua/5.1/,将pb.so放到该目录后, 以后就不用在工程文件头部特别新加一句package.cpath=...了。
        为了能够方便的使用protoc产生pb文件,这里在/usr/local/bin目录中建立到解压目录下protoc-gen-lua文件的软链接:
        #cd /usr/local/bin
        #sudo ln -s /your_path/protoc-gen-lua-master/plugin/protoc-gen-lua  
        这样就能使用protoc命令生成lua的protobuf支持文件了:
        #cd /your_path/protoc-gen-lua-master/example
        #protoc --lua_out=./person.proto
        person_pb.lua
        这时候查看目录就应该生成了一个person_pb.lua文件,运行如下测试代码:
        #lua test.lua

        name: Alice

        id: 1000

        email: Alice@example.com

        [phones] {

            num: 2147483647

            type: 2

        }

        看到上面结果,说明大功告成了。
 

阅读(3172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~