импортировать прото в другую библиотеку - PullRequest
0 голосов
/ 17 февраля 2020

Я занимаюсь разработкой библиотеки c ++ B, которая зависит от другой библиотеки A. Оба libray оба используют protobuf для определения message objects

Например,

// A.proto in library `A
package libA;
message ObjA {...}

И я хочу использовать его в библиотеке B

// B.proto in library `B`
import A.proto  // ??? is this right ???
message ObjB {
    ObjA obj_a=1;
}

Если Я просто копирую A.proto в текущую библиотеку B, будут созданы дублированные классы для ObjA.

Но если я не скопировал A.proto, как я могу использовать сообщение ObjA в сообщении ObjB?

1 Ответ

0 голосов
/ 17 февраля 2020

Что вы можете сделать, это добавить путь поиска для proto c в каталог, в котором находится A.proto:

protoc -I=DIR_WITH_A B.proto

Также вы можете написать относительный каталог с помощью оператора import в B .proto:

// B.proto in library `B`
import "SOME_DIR/A.proto";
message ObjB {
    ObjA obj_a=1;
}
...