首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MSVC Visual Studio 22 Protobuf集成错误

MSVC Visual Studio 22 Protobuf集成错误
EN

Stack Overflow用户
提问于 2022-09-13 17:33:19
回答 1查看 178关注 0票数 0

我试图让protobuf在windows 10上为VisualC++ Visual 2022工作,但是生成的pb.h和pb.cc文件会抛出大量的错误,比如:PROTOBUF_NAMESPACE_OPEN this declaration has no storage class or type specifier,因为我刚从go切换到C++,我想知道是否遗漏了可能对c++用户来说很明显的任何步骤。

复制步骤:i遵循以下说明:https://medium.com/@dev.ashurai/protoc-protobuf-installation-on-windows-linux-mac-d70d5380489d和这里的c++ windows部分:https://github.com/protocolbuffers/protobuf/blob/main/src/README.md

基本上使用vcpkg安装原型。然后,我使用vcpkg包文件夹中的pb.cc,从下面详细介绍的proto文件中构建pb.c和protoc.exe。我创建了一个空的C++项目并将原型文件添加到其中。

代码语言:javascript
复制
option java_multiple_files = true;
option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";

package helloworld;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}
EN

回答 1

Stack Overflow用户

发布于 2022-10-03 19:21:25

在安装了所有东西之后,我遇到了同样的问题,并开始将生成的.pb.h/.pb.cpp文件集成到我的项目中。在我看来,这似乎是的一个bug。

首先,确保您的Protobuf已正确安装:

如果没有使用vcpkg already

  • install
  1. 安装vcpkg
  2. ,请使用命令vcpkg integrate install使其自动配置Visual以使用已安装的软件包

您可以通过在visual studio中打开项目并检查项目属性:VC++ Directories \ External Include Directories来验证安装。评估列表应该包括您的vcpkg目录。

完成之后,查看您的.pb.h头文件,并注意编译错误在哪里。如果在#include <google/protobuf/...>行中出现错误,那么protobuf安装就有问题。如果在宏展开(如PROTOBUF_NAMESPACE_OPEN )的行中出现错误,则执行以下操作:

  1. 鼠标移过错误,让intellisense显示展开值应该是什么,并用定义的值替换宏。例如,对于显示错误的宏的每个实例,namespace google { namespace protobuf {
  2. Do都会扩展到PROTOBUF_NAMESPACE_OPEN

希望在您修复了所有有问题的宏之后,您应该能够编译。

我认为这是Visual错误的原因是intellisense能够正确展开宏,但编译器不能。而且,并不是同一个宏的所有实例都会产生编译错误,这真的很奇怪。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73707127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档