我正在使用protobuf 3.10 给定这样的文件夹结构:
ProtocTest
-- Messages
---- Common
------ CommonFields.proto
---- Incoming
------ Incoming.proto
---- protoc.exe
CommonFields.proto
syntax = "proto3";
package proto.common;
enum Color
{
None=0;
Blue=1;
Red=2;
Green=3;
}
Incoming.proto
syntax = "proto3";
package proto.incoming;
import "Common/CommonFields.proto";
message IncomingColor
{
int32 id = 1;
proto.common.Color color = 2;
}
当我使用以下命令从Messages文件夹中运行protoc.exe时:
../protoc.exe --cpp_out="..\Compiled" Incoming\*.proto
生成的已编译类显示在Incoming \ Compiled中的正确位置,但是.cc类头包括以下内容:
#include "Incoming/Incoming.pb.h"
由于.cc和标头位于同一目录中,因此显然代码无法找到标头。我不知道如何调整执行开关,以免发生这种情况。有什么建议吗?