协议缓冲区初始化期间崩溃

crash during protocol buffers initialization

本文关键字:崩溃 初始化 缓冲区 协议      更新时间:2023-10-16

在使用协议缓冲区的应用程序中观察到以下崩溃

0x00000000英寸??()0x08055f43在google::protobuf::DescriptorPool::InternalAddGeneratedFile中(encoded_file_descriptor=0xf64,size=3940)。h:115

谷歌中的0x08072b7a::protobuf::protobuf_AddDesc_google_2fprotobuf_2fsdescripttor_2eproto()位于google/protobuf/descriptor.pb.cc:557

遇到了与您描述的完全相同的崩溃。原因是在VC 2008下,libprotobuf.libRelease版本与Debug运行时混合。中的进一步讨论http://code.google.com/p/protobuf/issues/detail?id=184。

昨天我遇到了同样的问题。

为什么会发生:我在不同的库(不同的包)中有两个具有相同相对路径/名称的.proto文件:lib1/proto/config.proto、lib2/proto/config_proto

解决方案是显而易见的——将.proto文件放在不同的目录中和/或具有唯一的.proto名称。

附言:我知道这是一个四年前的问题,但我希望它能帮助其他人。