いきなりタイトルと違うことになるが、まずC++版を動かしてみよう。
敵を欺くには、まず自らを欺くところから始めねば。。。
いや、敵では無いな。
ともかく、Googleが標準として出しているものがあるから、その動作を先に見ておきたいのだ。
環境は、Windows10のWSLにした。
インストールは、ここを見た。
http://blog.systemjp.net/entry/20080710/p1
今日の時点では、v3.5.1が最新。
protobuf-cpp-3.5.1.tar.gzとprotoc-3.5.1-linux-x86_64.zipをダウンロードして、展開。
PATHは、protocのbinにだけ通した。
そして、書いてあるとおりにprotoファイルを作って、コンパイラを動かす。
$ protoc -I=. --cpp_out=. addressbook.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:546] No syntax specified for the proto file: addressbook.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
そういえば、proto2と3があると書かれていたな。
2008年の記事だからおそらくproto2で、protocのデフォルトもproto2だからコンパイルできたのだろう。
生成されたソースファイルを見ると、こういう記述があった。
#if GOOGLE_PROTOBUF_VERSION < 3005000
...
#if 3005001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
...
protobuf-cppの、src/google/protobuf/stubs/common.hには、こうあった。
#define GOOGLE_PROTOBUF_VERSION 3005001
まあ、v3.5.1だから、そうなのだな。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。