Robotino 3上でRefBox がmake できない

robotino@robotino-base4:~/rcll-refbox/src/msgs$ make
--> Generating ExplorationInfo (Protobuf Message)
MachineInstructions.proto:64:3: Expected "required", "optional", or "repeated".
MachineInstructions.proto:64:12: Expected field name.
MachineInstructions.proto:65:3: Expected "required", "optional", or "repeated".
MachineInstructions.proto:65:12: Expected field name.
MachineInfo.proto: Import "MachineInstructions.proto" was not found or had errors.
MachineInfo.proto:96:12: "PrepareInstructionBS" is not defined.
MachineInfo.proto:97:12: "PrepareInstructionDS" is not defined.
MachineInfo.proto:98:12: "PrepareInstructionSS" is not defined.
MachineInfo.proto:99:12: "PrepareInstructionRS" is not defined.
MachineInfo.proto:100:12: "PrepareInstructionCS" is not defined.
ExplorationInfo.proto: Import "MachineInfo.proto" was not found or had errors.
ExplorationInfo.proto:57:12: "LightSpec" is not defined.
make[1]: *** [/home/robotino/vega/lab/btr2019/germanOpen/rcll-refbox/src/msgs/.objs_fawkes/ExplorationInfo.pb.touch] Error 1
make: *** [.objs_fawkes] Error 2

なんてエラーが出る.

同じコードなのに,Ubuntu 18.04 上ではコンパイルできる.
Robotino は,Ubuntu 14.04である.
16.04 のRobotino でも同様のエラーが出ます.

MachineInstruction.proto の64行目と65行目のフィールドコードが,
requireかoptionalかrepeated しか無理っぽい.
ファイルを見てみると,reserved とかになっている.

検索してみると,Proto3 Language Guide(和訳)が見つかった.
本来は,削除したいけど,今後の整合性を考えて,使ったことを覚えておくって感じでしょうか.
たぶん,ProtoBuff のバージョン違いで,対応していないっぽいです.

ってことは,とりあえず削除しちゃっても現状では問題ないってことかなと思い,
64行目と65行目をコメントアウトしたら,無事,make できました.

message PrepareInstructionDS {
  // reserved "gate";
  // reserved 1;
  required uint32 order_id = 2;
}

こんな感じ.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*