【自动生成的grpc.pb.h和grpc.pb.cc使用编译器编译报错】grpc+proto C++

文章描述了在使用Proto文件生成cpp代码时遇到的编译问题,原因是Proto文件中的中文注释行末缺少句点。解决方案是在每行中文注释后添加句点,然后重新运行protoc命令生成文件,之后在VS2022中编译即可成功。
摘要由CSDN通过智能技术生成

proto文件

syntax = "proto2";
package cfs;

message CSIMCardNumber
{
	required string simNumber =1;
}
message Empty
{
}
service ForensicsService
{
	//获取sim卡本机号码
	rpc GetSIMCardNumber(Empty) returns(CSIMCardNumber);
}

生成命令

protoc --cpp_out=./ examples.proto
protoc --grpc_out=./ --plugin=protoc-gen-grpc=/bin/grpc_cpp_plugin examples.proto

自动生成的文件

会生成四个文件, examples.grpc.pb.cc、examples.grpc.pb.h、examples.pb.cc、examples.pb.h。

使用vs2022编译报错如下:

通过查看第一个错误,判断应该是没有识别到GetSIMCardNumber()这个函数,而不是重写的问题
报错详情

编译无法识别的原因:

proto中单独一行的中文注释后面没有加上.
proro源文件

解决方案

proto源文件中,在单独一行的中文注释后面加上标点符号“.”
然后再通过命令行重新生成相关文件,使用vs编译就能通过了
在这里插入图片描述

碎碎念

这个问题困扰了好长时间,没想到是会有这个约定;一开始还以为是编译器有问题,重启编译器还是不行,后面又开关机,重启都试过了,没有想到是这样子的,具体为啥中文字符后面要加".",我也没有去深究,社畜要去完成工作了,如果有知道的小伙伴,感谢留言赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值