protoc生成cpp后缀的文件

修改protoc生成文件的后缀

cd protobuf-3.5.1然后vi src/google/protobuf/compiler/cpp/cpp_generator.cc

找到CppGenerator::Generate函数。

.pb.cc改为.pb.cpp,总共有3处修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff --git a/src/google/protobuf/compiler/cpp/cpp_generator.cc b/src/google/protobuf/compiler/cpp/cpp_generator.cc
index e01e5dc..a9db5ac 100644

+++ b/src/google/protobuf/compiler/cpp/cpp_generator.cc
@@ -164,20 +164,20 @@ bool CppGenerator::Generate(const FileDescriptor* file,
{
// This is the global .cc file, containing enum/services/tables/reflection
google::protobuf::scoped_ptr<io::ZeroCopyOutputStream> output(
- generator_context->Open(basename + ".pb.cc"));
+ generator_context->Open(basename + ".pb.cpp"));
io::Printer printer(output.get(), '$');
file_generator.GenerateGlobalSource(&printer);
}
for (int i = 0; i < file_generator.NumMessages(); i++) {
// TODO(gerbens) Agree on naming scheme.
google::protobuf::scoped_ptr<io::ZeroCopyOutputStream> output(
- generator_context->Open(basename + "." + SimpleItoa(i) + ".cc"));
+ generator_context->Open(basename + "." + SimpleItoa(i) + ".cpp"));
io::Printer printer(output.get(), '$');
file_generator.GenerateSourceForMessage(i, &printer);
}
} else {
google::protobuf::scoped_ptr<io::ZeroCopyOutputStream> output(
- generator_context->Open(basename + ".pb.cc"));
+ generator_context->Open(basename + ".pb.cpp"));
io::Printer printer(output.get(), '$');
file_generator.GenerateSource(&printer);
}

安装protoc编译器

过程就不说了,直接查看安装包的src/README.md即可。