如何使pb.h变小以减少编译时间

问题描述 投票:0回答:1

当 proto 文件很大时,编译时间会太长(尤其是当我将头文件包含在另一个文件中时)。

几年前有人问过类似的问题,但没有回应:https://github.com/protocolbuffers/protobuf/issues/7340

有没有办法可以加快速度?

我们使用 Bazel,因此预编译标头不是一个选项。

c++ compilation protocol-buffers
1个回答
0
投票

protoc C++ 后端有一个记录不完善的选项

proto_h
,它会生成一个单独的文件,其中包含消息的前向声明。

可以这样调用:

protoc --cpp_out=proto_h=true:outputdir myproto.proto

除了正常输出

myproto.pb.h
myproto.pb.cc
之外,您还会得到
myproto.proto.h
。它包含了基本的消息类型,但是forward声明了一些内部类以避免过多的包含。

然后,您可以通过在标头中仅包含

myproto.proto.h
来减少编译时间,同时包含 C++ 源代码文件的完整
myproto.pb.h

© www.soinside.com 2019 - 2024. All rights reserved.