Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 質問: Text::Kakasi が LIBRARY PATH を見出せない



ふくしです。

野首さん、リプライありがとうございます。

> >> Perl で Text::Kakasi を呼び出せるのですが、
> >> コマンドラインの場合 .cshrc に
> >> 
> >>  setenv LD_LIBRARY_PATH  .../lib
> >> 
> >> を与えなければ
> >> 
> >>  can't load '.../Kakasi.so';
> >> 
> >> と言われます。
> 
>   dynamic link 回りは OS によって異なる部分も多いので、これだけだとな
> んとも言えません。
>   OS の種類と perl の version は何を利用していますでしょうか? あと、
> Makefile.PL をどのように修正したかも示してもらえると、何らかの助言がで
> きるかもしれません。

中途半端な質問だったようで申し訳ありませんでした。

OS は FreeBSD 2.2.8-RELEASE #0、
Perl は v5.6.0 です。

Makefile.PL は、

 use ExtUtils::MakeMaker;

 WriteMakefile(
	      'NAME' => 'Text::Kakasi',
	      'VERSION_FROM' => 'Kakasi.pm',
	      'INC' => '-I/xxxxx/include',
	      'LIBS' => ['-L/xxxxx/lib -lkakasi'],
	      'DEFINE' => '-DWAKATIGAKI',
 );

xxxxx の部分を自分の Perl のプライベート ライブラリにしました。
(root 以外で Perl をインストールしたので)
.cshrc の中では

 setenv LD_LIBRARY_PATH  /xxxxx/lib

のように指定しています。

なお、先の質問メールで
$ENV{LD_LIBRARY_PATH} を使って一時的に指定するようなことを
書きましたが、man perlvar によると
この指定が有効になるのはそのプロセスの子プロセスに対してだそうで、
wrapper を作らないとダメですね。

-- 
fukushi