在mac上使用protoc-gen-lua从proto文件生成lua

时间:2022-08-07 15:40:25

共2步:

  • 下载protobuf代码并安装protobuf python
  • 下载protoc-gen-lua并安装

关键词

  • protobuf
  • lua
  • mac

Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler. —— [ Google Protobuf ]

下载protobuf代码并安装protobuf python

首先从https://github.com/google/protobuf下载最新的protobuf(请注意自己需要使用的protobuf版本,由于protobuf可以跨语言使用,所以版本一致很重要),然后在Terminal中进入下载目录里的python目录下,运行python setup.py(如果有权限问题请在命令前加sudo;由于mac os 10.10自带python 2.7,所以省去了安装python的步骤)。

下载protoc-gen-lua并安装

请到https://github.com/sean-lin/protoc-gen-lua下载最新的protoc-gen-lua,然后在Terminal中进入下载目录下的protobuf目录,运行make。
此时可能遇到找不到pkg-config,请在Terminal中运行下列命令

curl http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz -o pkg-config-0.28.tar.gz
tar -xf pkg-config-0.28.tar.gz
cd pkg-config-0.28
./configure --with-internal-glib
sudo make install

之后再在protobuf目录下运行make。如果遇到无法找到lua.h文件,请到https://code.google.com/p/rudix/downloads/detail?name=lua-5.1.4-7.pkg&can=1&q=lua下载此lua并安装。如果再运行make后遇到无法找到endian.h问题,请在Terminal中运行xcode-select –install,并修改protobuf目录下的pb.c中的代码

#ifdef _ALLBSD_SOURCE
#include <machine/endian.h>
#else
#include <endian.h>
#endif

#include <machine/endian.h>

之后make应生成pb.so文件。
然后进入/usr/local/bin目录运行sudo ln -s /path/to/protoc-gen-lua/plugin/protoc-gen-lua,之后就可以使用protoc命令生成lua文件了

protoc --lua_out=./ foo.proto

参考

http://blog.sina.com.cn/s/blog_64d591e80101mkxx.html