2004年08月24日

Text::Iconv

Text::IconvをPerl5.6環境にインストールしようといつも通り
Perl -MCPAN -e shell
cpan> install Text::Iconv
したところ下記のようなエラーに遭遇
In string, @DEFINE now must be written as \@DEFINE at Makefile.PL line 89, near "@DEFINE"
Execution of Makefile.PL aborted due to compilation errors.
何がいけないんだろうと思ってとりあえずエラーになった
~/.cpan/build/Text-Iconv-1.4/Makefile.PL
を見てみると、
WriteMakefile(
    'NAME'              => 'Text::Iconv',
    'VERSION_FROM'      => 'Iconv.pm', # finds $VERSION
    'PREREQ_PM'         => {}, # e.g., Module::Name => 1.1
    ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
      (ABSTRACT_FROM => 'Iconv.pm', # retrieve abstract from module
       AUTHOR        => 'Michael Piotrowski <mxp@dynalabs.de>') : ()),
    'LIBS'              => $config{LIBS},
    'DEFINE'            => "@DEFINE",
    'INC'               => $config{INC},
    'dist'              => {COMPRESS => 'gzip', SUFFIX => 'gz'},
);
なるほど、"@DEFINE"っていう書式が悪いらしい。

とりあえず、定数で代入してやればmake出来そうだったのでPerl5.8.0環境でCPANをかけてインストールしてみたところ@DEFINEの中身はNULLで良いようだったので

'DEFINE' => "",
と書き換えて今度は手動でmake・・・成功( ̄▽ ̄)ノ

make testも成功したのでmake installでさっくりインストールしました。

その後、ExtUtils::MakeMakerが古いのかと思ってUpdateしてみたんですが、結果は変わらず失敗。

この書式Perl5.8.0以降じゃないとうまく動作しないんですかね?<詳しく調べてないのであれですが(^^;

Posted by Takuchan at 2004年08月24日 10:34 | トラックバック(0)