TinySVM 0.09 のPerl モジュールをコンパイルしようとすると、SWIG関係のエラーが出ます。
一番簡単な方法は、0.04のPerlモジュールをコピーして使うことです。
http://overlasting.dyndns.org/2006-10-20-5.html
これで全然困らないのですが、少々面白くないので、とりあえず、動くところまでTinySVM_wrap.cを手で修正してみました。(まだwarningが出ていますが。。。)
--- TinySVM-0.09.orig/perl/TinySVM_wrap.c 2001-08-29 15:52:46.000000000 +0100 +++ TinySVM-0.09/perl/TinySVM_wrap.c 2009-05-20 16:47:44.000000000 +0100 @@ -323,10 +323,10 @@ /* Magic variable code */ #ifndef PERL_OBJECT #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c) -static void _swig_create_magic(SV *sv, const char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) { +static void _swig_create_magic(SV *sv, const char *name, int (*set)(PerlInterpreter*, SV *, MAGIC *), int (*get)(PerlInterpreter*, SV *,MAGIC *)) { #else #define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c) -static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) { +static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(PerlInterpreter*, SV *, MAGIC *), int (CPerlObj::*get)(PerlInterpreter*, SV\ *, MAGIC *)) { #endif MAGIC *mg; sv_magic(sv,sv,'U',(char *) name,strlen(name)); @@ -366,9 +366,9 @@ extern "C" #endif #ifndef PERL_OBJECT -SWIGEXPORT(void) SWIG_init (CV* cv); +SWIGEXPORT(void) SWIG_init (PerlInterpreter*, CV* cv); #else -SWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *); +SWIGEXPORT(void) SWIG_init (PerlInterpreter*, CV *cv, CPerlObj *); #endif #include <tinysvm.h>