Discussion:
problems installing Algorithm::SVM and Algorithm::SVMLight
(too old to reply)
Francis Keyes
2010-01-14 03:11:54 UTC
Permalink
Hey All,

I'm having trouble compiling either Algorithm::SVM or Algorithm::SVMLight
from CPAN. I have pasted the error below. If this is not the correct list
for this type of discussion please direct me elsewhere.
My system is Linux Fedora 9 kernel: 2.6.24.7-1.rt3.2.fc9.ccrmart
I think there may be a simple solution to the problem.

Any help is greatly appreciated.

I used the command: perl -MCPAN -e 'install Algorithm::SVM'
(I have also tried downloading and compiling the package manually with the
same result)

OUTPUT:

Checking if your kit is complete...
Looks good
Writing Makefile for Algorithm::SVM
cp lib/Algorithm/SVM/DataSet.pm blib/lib/Algorithm/SVM/DataSet.pm
cp lib/Algorithm/SVM.pm blib/lib/Algorithm/SVM.pm
AutoSplitting blib/lib/Algorithm/SVM.pm (blib/lib/auto/Algorithm/SVM)
/usr/bin/perl /usr/lib/perl5/5.10.0/ExtUtils/xsubpp -C++ -noprototypes
-typemap /usr/lib/perl5/5.10.0/ExtUtils/typemap -typemap typemap SVM.xs >
SVM.xsc && mv SVM.xsc SVM.c
g++ -c -Wall -O3 -DVERSION=\"0.13\" -DXS_VERSION=\"0.13\" -fPIC
"-I/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE" SVM.c
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__new_dataset(PerlInterpreter*, CV*)’:
SVM.c:49: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__getLabel(PerlInterpreter*, CV*)’:
SVM.c:74: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__setLabel(PerlInterpreter*, CV*)’:
SVM.c:105: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__getAttribute(PerlInterpreter*, CV*)’:
SVM.c:134: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__setAttribute(PerlInterpreter*, CV*)’:
SVM.c:166: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__getIndexAt(PerlInterpreter*, CV*)’:
SVM.c:196: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__getValueAt(PerlInterpreter*, CV*)’:
SVM.c:228: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet__getMaxI(PerlInterpreter*, CV*)’:
SVM.c:260: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__DataSet_DESTROY(PerlInterpreter*, CV*)’:
SVM.c:291: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__new_svm(PerlInterpreter*, CV*)’:
SVM.c:318: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__addDataSet(PerlInterpreter*,
CV*)’:
SVM.c:350: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__clearDataSet(PerlInterpreter*,
CV*)’:
SVM.c:386: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__train(PerlInterpreter*, CV*)’:
SVM.c:414: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__crossValidate(PerlInterpreter*,
CV*)’:
SVM.c:446: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__predict_value(PerlInterpreter*,
CV*)’:
SVM.c:478: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__predict(PerlInterpreter*, CV*)’:
SVM.c:517: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__saveModel(PerlInterpreter*,
CV*)’:
SVM.c:556: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__loadModel(PerlInterpreter*,
CV*)’:
SVM.c:588: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getNRClass(PerlInterpreter*,
CV*)’:
SVM.c:620: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getLabels(PerlInterpreter*,
CV*)’:
SVM.c:651: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__getSVRProbability(PerlInterpreter*, CV*)’:
SVM.c:692: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void
XS_Algorithm__SVM__checkProbabilityModel(PerlInterpreter*, CV*)’:
SVM.c:723: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setSVMType(PerlInterpreter*,
CV*)’:
SVM.c:754: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getSVMType(PerlInterpreter*,
CV*)’:
SVM.c:783: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setKernelType(PerlInterpreter*,
CV*)’:
SVM.c:814: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getKernelType(PerlInterpreter*,
CV*)’:
SVM.c:843: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setGamma(PerlInterpreter*,
CV*)’:
SVM.c:874: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getGamma(PerlInterpreter*,
CV*)’:
SVM.c:903: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setDegree(PerlInterpreter*,
CV*)’:
SVM.c:934: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getDegree(PerlInterpreter*,
CV*)’:
SVM.c:963: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setCoef0(PerlInterpreter*,
CV*)’:
SVM.c:994: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getCoef0(PerlInterpreter*,
CV*)’:
SVM.c:1023: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setC(PerlInterpreter*, CV*)’:
SVM.c:1054: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getC(PerlInterpreter*, CV*)’:
SVM.c:1083: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setNu(PerlInterpreter*, CV*)’:
SVM.c:1114: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getNu(PerlInterpreter*, CV*)’:
SVM.c:1143: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__setEpsilon(PerlInterpreter*,
CV*)’:
SVM.c:1174: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM__getEpsilon(PerlInterpreter*,
CV*)’:
SVM.c:1203: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void XS_Algorithm__SVM_DESTROY(PerlInterpreter*, CV*)’:
SVM.c:1234: warning: unused variable ‘Perl___notused’
SVM.c: In function ‘void boot_Algorithm__SVM(PerlInterpreter*, CV*)’:
SVM.c:1267: warning: deprecated conversion from string constant to ‘char*’
SVM.c:1263: warning: unused variable ‘Perl___notused’
g++ -c -Wall -O3 -DVERSION=\"0.13\" -DXS_VERSION=\"0.13\" -fPIC
"-I/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE" libsvm.cpp
g++ -c -Wall -O3 -DVERSION=\"0.13\" -DXS_VERSION=\"0.13\" -fPIC
"-I/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE" bindings.cpp
bindings.cpp: In constructor ‘DataSet::DataSet(double)’:
bindings.cpp:22: error: ‘malloc’ was not declared in this scope
bindings.cpp: In destructor ‘DataSet::~DataSet()’:
bindings.cpp:33: error: ‘free’ was not declared in this scope
bindings.cpp: In member function ‘void DataSet::realign(svm_node*)’:
bindings.cpp:39: error: ‘memcpy’ was not declared in this scope
bindings.cpp:40: error: ‘free’ was not declared in this scope
bindings.cpp: In member function ‘void DataSet::setAttribute(int, double)’:
bindings.cpp:48: error: ‘malloc’ was not declared in this scope
bindings.cpp:50: error: ‘memcpy’ was not declared in this scope
bindings.cpp:86: error: ‘realloc’ was not declared in this scope
bindings.cpp: In member function ‘void SVM::free_x_space()’:
bindings.cpp:160: error: ‘free’ was not declared in this scope
bindings.cpp: In member function ‘int SVM::train(int)’:
bindings.cpp:180: error: ‘free’ was not declared in this scope
bindings.cpp:186: error: ‘malloc’ was not declared in this scope
bindings.cpp:191: error: ‘malloc’ was not declared in this scope
bindings.cpp:195: error: ‘free’ was not declared in this scope
bindings.cpp:196: error: ‘free’ was not declared in this scope
bindings.cpp:197: error: ‘free’ was not declared in this scope
bindings.cpp:203: error: ‘free’ was not declared in this scope
bindings.cpp:219: error: ‘free’ was not declared in this scope
bindings.cpp: In member function ‘double SVM::crossValidate(int)’:
bindings.cpp:308: error: ‘rand’ was not declared in this scope
bindings.cpp:331: error: ‘malloc’ was not declared in this scope
bindings.cpp:377: error: ‘free’ was not declared in this scope
bindings.cpp: In destructor ‘SVM::~SVM()’:
bindings.cpp:427: error: ‘free’ was not declared in this scope
make: *** [bindings.o] Error 1
LAIRDM/Algorithm-SVM-0.13.tar.gz
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Martin Gellner
2012-10-14 22:03:09 UTC
Permalink
in order to make Algorithm::SVM work under "Linux dsksdy
3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64
x86_64 x86_64 GNU/Linux" the following 2 includes must be added in
bindings.cpp:

#include <cstdlib>
#include <cstring>

Else it will give errors as above.

Martin
milki
2012-10-16 19:54:10 UTC
Permalink
Post by Martin Gellner
in order to make Algorithm::SVM work under "Linux dsksdy
3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64
x86_64 x86_64 GNU/Linux" the following 2 includes must be added in
#include <cstdlib>
#include <cstring>
Else it will give errors as above.
Hi Martin,

You should be contacting the module authors listed in perldocs

Algorithm::SVM -

Matthew Laird <***@brinkman.mbb.sfu.ca> Alexander K. Seewald
<***@seewald.at>

Algorithm::SVMLight -

Ken Williams, <***@cpan.org>

via the rt bug trackers
https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-SVM
https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-SVMLight

which are linked from their respective cpan pages
--
milki
Loading...