[groonga-dev,03258] Re: makeできない

Back to archive index

Kouhei Sutou kou****@clear*****
2015年 5月 21日 (木) 16:40:05 JST


須藤です。

In <CANehQUgVeNJNFreEuMnxA1Smuoj=aSzCP****@mail*****>
  "[groonga-dev,03252] Re: makeできない" on Wed, 20 May 2015 13:38:36 +0900,
  <fbnte****@gmail*****> wrote:

> egccのインストールの仕方が恐らく間違っているのではないかと思い、
> パッケージからインストールしてみたした。
> ですが、あまり変わりませんでした。

そうですか。。。

> 2015.05.20のものをデバッグなしで試してみて、
> 最終的には以下のようになりました。
> egcc-cmake→一番良い?エラー表示は Can't load library 'libgroonga.so'
> egcc-configure→エラー表示なしで正常に動作しない。
> default-cmake→エラー表示は Can't load library 'libgroonga.so'
> default-configure→ビルドエラー

「Can't load library 'libgroonga.so'」はライブラリーのロード
パスが通っていないことが原因なんですよ。(普通のシステムは危
ないので/tmp/local/lib/にあるライブラリーをロードしようとはし
ない。)

なので、手動でパスを通すために

  % LD_LIBRARY_PATH=/tmp/local/lib /tmp/local/bin/groonga

とする必要があります。

  % cmake

とした場合は/usr/local/lib/にlibgroonga.soがインストールされ
ますが、/usr/local/lib/はデフォルトでライブラリーのロードパ
スに入っているので

  % /usr/local/bin/groonga

でlibgroonga.soを見つけることができます。


一方、

  % cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/groonga

のように/usr/local/lib/以外のところにインストールした場合は
/etc/rc.conf.localに

  shlib_dirs=/usr/local/groonga/lib

と書いて再起動すると/usr/local/groonga/libがロードパスに入る
のでLD_LIBRARY_PATHなしの

  % /usr/local/groonga/bin/groonga

で起動できると思います。

shlib_dirsはldconfig(8)のENVIRONMENTに書いてありました。

> ただし、それは再起動せずに何回もインストール作業をすればでした。
> よくわかりません。
> もうこれでいいような気がしてきました。

まぁ、これだけ試行錯誤したらくじけますよね。。。

> とりあえず今のところわかる、
> 安定してコンパイルするやり方は以下のようにするといいとわかりました。
> ・groongaは最新のnightlyを使う
> ・configureの代わりにcmakeを使う
> ・makeの代わりにgmakeを使う
> ・make installの代わりにgmake installを使う

まとめ、ありがとうございます。
私が成功したパターンは次の通りです。

1. システムのGCC + configure

  % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz
  % gtar xvf groonga-5.0.3.2015.05.21.tar.gz
  % cd groonga-5.0.3.2015.05.21
  % ./configure --enable-shared-onigmo
  % sudo pkg_add gmake
  % sudo bash -c "ulimit -d unlimited; sudo -u $USER -H gmake"
  % sudo gmake install

2. システムのGCC + CMake

  % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz
  % gtar xvf groonga-5.0.3.2015.05.21.tar.gz
  % cd groonga-5.0.3.2015.05.21
  % sudo pkg_add cmake
  % cmake .
  % sudo pkg_add gmake
  % sudo bash -c "ulimit -d unlimited; sudo -u $USER -H gmake"
  % sudo gmake install

> あと、何回もやっていたのですがコンパイル処理が重い気がします。
> 
> cmakeとninjaでコンパイルするのが軽いらしいので、
> 将来的に対応してもらえるとありがたいです。(できればclangとかも)

すでにNinjaでもビルドできるようになっているっぽいです。
私はこれで動きました。

  % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz
  % gtar xvf groonga-5.0.3.2015.05.21.tar.gz
  % cd groonga-5.0.3.2015.05.21
  % sudo pkg_add cmake ninja
  % cmake . -G Ninja
  % ninja
  % sudo gmake install

clangはFreeBSDとか他のBSD系のプラットフォームだと動いている
んですよねぇ。OpenBSDだと動かないのはどうしてかしら。。。


--
須藤功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
プログラミングが好きな学生のための勉強会:
  http://www.seplus.jp/sezemi/




groonga-dev メーリングリストの案内
Back to archive index