金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks
建议proto文件按包名分子目录

(金庆的专栏 2017.4)

服务器客户端之间的protobuf协议定义在客户端与服务器公共目录下,包名为rpc.
服务器内部协议定义在服务器目录下,包名为svr.
rpc.EmptyMsg 和 svr.EmptyMsg 分别定义在各自的根目录,文件名都是 empty_msg.proto.
运行时就会报错:

[libprotobuf ERROR E:\deps\protobuf-3.2.0\protobuf-3.2.0\src\google\protobuf\
descriptor_database.cc:57] File already exists in database : empty_msg.proto
[libprotobuf FATAL E:\deps\protobuf-3.2.0\protobuf-3.2.0\src\google\protobuf\
descriptor.cc:1275] CHECK failed: generated_database_->Add(encoded_file_descriptor, size):

原因为试图用同一个文件名"empty_msg.proto"往descriptor_database添加descriptor。

如果按包名分子目录,文件名就可以分开为 "rpc/empty_msg.proto" 和 "svr/empty_msg.proto".

posted on 2017-04-17 14:40 金庆 阅读(1354) 评论(0)  编辑 收藏 引用 所属分类: 1. C/C++2. 网游开发

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理