最近项目使用unity+Xlua,通讯协议这一块用的是谷歌的protobuf,所以要lua层使用协议,就使用了pbc。
生成好proto文件后使用pbc生成pb文件时,一直提示我import的某个文件找不到,开始一直检查是不是路径有问题,甚至一度怀疑pbc不支持import,不过后来google到,不是不支持,而是使用有限制。
读代码了解限制.png
但是有没有说是什么限制,读代码实在是有点难度。最后尝试出来,import的文件必须和本文件在一个文件夹下。也就是说:如果A.proto中import了B.proto,那么A B文件必须在同一个文件夹下。
另外在register pb协议的时候,被import的协议一定先register。例如:B.pb一定要在A.pb之前register。
总结:
(1)如果A.proto中import了B.proto,那么A B文件必须在同一个文件夹下
(2)B.pb一定要在A.pb之前register
这个问题查了一天,记录一下。