Published on

Intel Edison 用に gflags, glog, protobuf をビルドする

Authors

gflags からビルドします

gflags

$ tar xzvf gflags-2.1.2
$ cd gflags-2.1.2
$ mkdir build && cd build
$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && ccmake ..)

c を押した後,CMAKE_INSTALL_PREFIX を変更します.

$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && make && make install)

glog

$ tar xzvf glog-0.3.4.tar.gz
$ cd glog-0.3.4
$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && ./configure --prefix=/home/daisuke/intel-edison/lib/glog --with-gflags=/home/daisuke/intel-edison/lib/gflags)
$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && make && make install)

使うときには gflags のライブラリはリンクしなくて OK です。リンクすると下記のようなエラーが出て実行時に落ちます.

ERROR: something wrong with flag 'tab_completion_word' in file
'/home/daisuke/intel-edison/lib/build/gflags-2.1.2/src/gflags_completions.cc'.
One possibility: file
'/home/daisuke/intel-edison/lib/build/gflags-2.1.2/src/gflags_completions.cc' is
being li

protobuf

コンパイラはホスト側でも使います.ホスト,ターゲットの両方用にビルドします.まずはホスト側から

$ tar xzvf protobuf-cpp-3.0.0-beta-2.tar.gz
$ cd protobuf-3.0.0-beta-2
$ ./configure --prefix=/home/daisuke/lib/protobuf
$ make && make install

次に Edison 用をビルドします.そのままビルドすると Glibcxx が見つからないと怒られるので,ランタイムのパスを追加しています.

$ tar xzvf protobuf-cpp-3.0.0-beta-2.tar.gz
$ cd protobuf-3.0.0-beta-2
$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && export LD_LIBRARY_PATH=/home/daisuke/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux/usr/lib && ./configure --prefix=/home/daisuke/intel-edison/lib/protobuf)
$ (source ~/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux && export LD_LIBRARY_PATH=/home/daisuke/intel-edison/bin/poky-edison/1.7.2/environment-setup-core2-32-poky-linux/usr/lib && make && make install)