2018/03/08

[c/c++]protobuf-c (2)

いきなりタイトルと違うことになるが、まずC++版を動かしてみよう。


敵を欺くには、まず自らを欺くところから始めねば。。。
いや、敵では無いな。

ともかく、Googleが標準として出しているものがあるから、その動作を先に見ておきたいのだ。


環境は、Windows10のWSLにした。


インストールは、ここを見た。
http://blog.systemjp.net/entry/20080710/p1


今日の時点では、v3.5.1が最新。

protobuf-cpp-3.5.1.tar.gzprotoc-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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。