[英]C++ Linux Google Protocol Buffers - cannot run compiled proto cpp files from tutorial
[英]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.