• ベストアンサー

sbclでmecab

sbclでmecab出力を使おうと思っています。 バインディングを見つけて喜んでいたのですが、うまく動いてくれません。 (バインディングURL : http://lispuser.net/commonlisp/japanese.html#sec-19) OSはMacOSX 10.5.7 です。 mecab.lisp というファイルをloadするところで、 "libmecab.soが開けない" という表示がでます。(詳細下記) mecabの中身を少し調べたところ、libmecab.oはあるのですが、libmecab.soがなかったので、 代わりにlibmecab.oを読み込ませるようにしてみました。 ただ、それでも、結果は同じでした。 ググったりして頑張ってみたのですが、 初心者なもので、結局わかりませんでした。 どなたか解決方法がわかりませんでしょうか。 どうぞ、よろしくお願いします。 debugger invoked on a LOAD-FOREIGN-LIBRARY-ERROR: Unable to load foreign library (LIBMECAB). Error opening shared object "libmecab.so": dlopen(3) failed. Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [RETRY ] Try loading the foreign library again. 1: [USE-VALUE] Use another library instead. 2: [ABORT ] Exit debugger, returning to top level. (CFFI::FL-ERROR "Unable to load foreign library (~A).~% ~A")[:EXTERNAL]

質問者が選んだベストアンサー

  • ベストアンサー
  • yapsma
  • ベストアンサー率100% (1/1)
回答No.2

Macは使ったことがないので詳しくは分からないようですが、 動的ライブラリの拡張子が'so'ではなく'dylib'のような気がします。 なので、'libmecab.dylib'のパスを探して、それを読み込ませるように してあげれば、動くかもしれません。 (確証は全くないですが...)

monsier
質問者

お礼

お礼を申し上げるのが遅くなってしまい、 すみません。 yapsmaさんのご指摘のように、 dynamic library の拡張子 .dylib がありましたので、 ソースのパス指定部分を書き換えてみました。 すると、見事解決致しました。 yapsmaさん、ご指南ありがとうございました。

その他の回答 (1)

回答No.1

う~~ん、これはちょっと分からないなあ。 僕もGNU/Linux上でmecab入れて試してみたんですが、恐らく依存関係が複雑過ぎるのかな?定義されたasdfファイルを読み込ませても、jpが無い、とか色々言われて……。 readme.txtでもあればもうちょっと明解なんですが、こう言う場合は直接作者に連絡を取って教わった方が良いですよ。 件のページはトップページが LISPUSER: http://lispuser.net/ で、最下段に >御感想,御意見,Lisp 話,Lisp 関連サイトの紹介などは ××× までメールしてください. とか書いてるんで、メールで教えを乞う層、ってのは歓迎してんじゃないのかな、と思います。

monsier
質問者

お礼

お礼を申し上げるのが遅くなってしまい。 申し訳ありません。 ダメもとで、制作者さんに連絡してみます。 ご提案ありがとうございました。

関連するQ&A