一、依赖安装
为了简单,这里都二进制安装。
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
}
看到上面结果,说明大功告成了。
阅读(3260) | 评论(0) | 转发(0) |