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中单独一行的中文注释后面没有加上.
解决方案
proto源文件中,在单独一行的中文注释后面加上标点符号“.”
然后再通过命令行重新生成相关文件,使用vs编译就能通过了
碎碎念
这个问题困扰了好长时间,没想到是会有这个约定;一开始还以为是编译器有问题,重启编译器还是不行,后面又开关机,重启都试过了,没有想到是这样子的,具体为啥中文字符后面要加".",我也没有去深究,社畜要去完成工作了,如果有知道的小伙伴,感谢留言赐教