繁体   English   中英

编译的Google协议缓冲区不起作用(C ++)

[英]Compiled google protocol buffers are not working (C++)

我下载了Google协议缓冲区3.6.0和适用于3.6.0的正确protoc.exe。

我的protoc.exe与.proto文件位于同一目录中,并且我已经运行了:

protoc -I=. --cpp_out=. ./xxxxxxx.proto

我得到了.h和.cc文件,但是当我尝试编译运行它们的程序时,出现如下错误:

google / protobuf / stubs / mutex.h(81):错误C2614:“ google :: protobuf :: internal :: MutexLockMaybe”:非法成员初始化:“ mu_”不是基本成员或成员

(我正在使用VS2012)

有任何想法吗

协议缓冲区3.6.0

从此版本开始,我们现在需要C ++ 11。 对于那些尚无法升级到C ++ 11的应用程序,我们将尝试仅通过重要的错误修复程序来更新3.5.x分支。

该表可以看出,VS 2012具有许多未实现的C ++ 11功能。

因此,您可以选择:使用较旧的Google协议缓冲区3.5或使用最新的Visual Studio。 或gcc,如果可以的话。

您应该为protobuf使用较旧的编译器。 2.6.1还可以,我用它。 或切换到VS 2015/2017并在那里进行开发。 我建议VS 2017 for C ++ 11。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM