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

あらすじ

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

Protobuf を Docker 上の Ubuntu 環境でインストールする
あらすじ前回の続き今までの流れの概略protobuf-c をコンパイルしようと思ったら Windows 上ではうまくいかなかった→Ubuntu 環境だったらうまくいくのではと思い、 Docker (Docker ToolBox)...

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

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

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

github.com

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

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

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

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

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

Protobuf を Docker 上の Ubuntu 環境でインストールする
あらすじ前回の続き今までの流れの概略protobuf-c をコンパイルしようと思ったら Windows 上ではうまくいかなかった→Ubuntu 環境だったらうまくいくのではと思い、 Docker (Docker ToolBox)...
Dockerfile を使って、自分用の Ubuntu の Docker イメージを作成する
前回の続き。tassi-yuzukko.hatenablog.com今回の目的docker pull ubuntuで最新版のubuntuイメージを取得することはできる。しかし、その場合、 sudoすら入っていない状態なので、一つずつ...

補足

なんと、リリース版なのにコンパイルエラーになる。(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 を使って遊んでみる!

コメント

タイトルとURLをコピーしました