コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか

Protobuf-c を Docker 上の Ubuntu 環境でインストールする

あらすじ

前回、 protobuf を Docker 上の Ubuntu 環境でインストールした。

tassi-yuzukko.hatenablog.com

今回は、いよいよ protobuf の C言語版である protobuf-c をインストールする。

protobuf-c をインストールするまでの手順

基本的には protobuf と同様に、以下の Readme に従う。

github.com

git hub からリポジトリをクローンする

こちらからクローン。詳細は省略します。

コンパイル/インストールする

Readme に書いてある通り、./autogen.sh && ./configure && make && make install を実行すればコンパイル&インストールができるらしい。

ちなみに、前提として以下の記事の通り、 protobuf-c をコンパイルするための Ubuntu の環境は構築済みとする。

tassi-yuzukko.hatenablog.com

tassi-yuzukko.hatenablog.com

補足

なんと、リリース版なのにコンパイルエラーになる。(protobuf-c ver1.30)

In file included from protoc-c/c_file.cc:64:0:
./protoc-c/c_file.h:107:3: error: 'vector' does not name a type
   vector<string> package_parts_;

調べてみると、既知の問題らしく、 issue に解決策が載っていた。
どうやら、 vectorstd::vector に、 pairstd::pair に置換すればよいとのこと。

github.com

理由は英語で解説してるっぽい人がいたけど、google先生に翻訳してもらってもよくわからん・・・

とりあえず言われた通り置換すると、一応コンパイル通りました。

動作確認

protoc-c --version を実行し、以下が出たたらOK。

root@e834aae66aee:/work/protobuf-c# protoc-c --version
protobuf-c 1.3.0
libprotoc 3.5.1

いやーしかし、リリース版がコンパイル通らないって・・・なんかこれ心配になってきたぞ・・・

次回はいよいよ、 protobuf-c を使って遊んでみる!