Я использую 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;
}
Когдая запускаю protoc.exe из папки «Сообщения» с помощью этой команды:
../protoc.exe --cpp_out="..\Compiled" Incoming\*.proto
Полученный скомпилированный класс отображается в правильном месте в папке Incoming \ Compiled, но заголовок класса .cc включает в себя следующее:
#include "Incoming/Incoming.pb.h"
Поскольку .cc и заголовок находятся в одном каталоге, очевидно, что код не может найти заголовок. Я не знаю, как настроить параметры выполнения, чтобы этого не произошло. Есть предложения?