|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
6 g6 m( u+ @) hwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
# l: c/ W8 i* R) d5 w2 ?6 J1:装tdm-gcc-5.1.0-2.exe- L( |- [1 z, d7 d( R1 e
2:添加libsvm
! _$ T& X+ z. r6 _/ Q1 e, d; l, |3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory+ c5 ^& {- r# x+ Q9 e r
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。& j/ E1 y# c( t% c
1:装tdm-gcc-5.1.0-2.exe: r% X; x: R: k U- p4 |. M+ V2 U
在matlab中,敲入mex -setup(带空格),若显示
% U2 w/ ]/ m2 ]- A7 x* V
% _( p& G! d; J7 W8 N则到以下网站下载对应的编译器。1 E3 ~1 d. A. X, w$ g0 d! B, a
链接 http://tdm-gcc.tdragon.net/download o, a% o' ]- i9 x& L
$ N/ g" T% d, K! t' L
按照步骤安装即可,路径什么的按照默认的就好。: d, |2 y, d, B) `
在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。& O. J/ m V2 X
在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
+ a6 `5 ^, H5 x
& U. |& h; ^& `6 b. J6 ^
在matlab中:/ W( b; m' v: S# J$ X
键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’): g2 }+ n) G+ h6 L( i0 O7 n
键入mex -setup。出现下图:
4 `# g% t! W+ S* V4 f3 Y& t9 C7 r
) p2 f2 ~% M: w- Q+ t3 }选择对应电脑的语言,我选择的是第一个。出现下图:
$ c1 D$ ~0 C- {7 s7 X
. n1 K1 R0 \5 q1 S$ [5 |0 s
) ? Z, C2 R" K6 V! B
2:添加libsvm
5 w6 `* h/ H, f7 S0 p官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载3 i, ]+ s! n `, v5 a
6 B* j i1 G; L/ j将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:$ B( H3 W7 Z. o0 G4 H# b
5 E) J2 ~. k) m5 }
添加路径:在matlab中-设置路径(找到刚才的解压文件):3 E1 z) J$ Q. J
! N+ f9 K A. X7 Z2 p* @在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
! }& ?8 V$ x/ ]% ]
: n# [% M9 |. m. o- p1 I" ^8 U+ g
在这个前提下,键入:make回车;- q1 U* @4 z6 L5 E
( K4 ]1 n2 c. M! j; Z
3 e9 Q) Y: D7 Z: `# w) r
3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory8 G( \% u1 F j; m" `
在导入lib时出现的问题:
) I" @" a0 I: _- l9 g1:
/ R) U( v/ P3 \2 T' p' W* n9 k. q" {! z2 l- C
2:
5 n8 A d7 w; w a$ [$ ]& b0 L
1 K/ w; p. ~! Y7 o$ B: Y
解决:2 s# @8 e9 u$ R7 b$ F: i! L. Z# R2 ]
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。0 }6 b; n9 C- B
再次解决# V( g9 B- X4 P6 v4 |6 z/ F7 ]
将make.m里面的代码换成如下,就解决成功了。!!!
0 b1 h" z9 c. ?7 Q6 {- @7 o6 \8 g1 H5 N w; L$ c' U. J
- mex COMPFLAGS="\$COMPFLAGS -std=c99" -largeArrayDims libsvmread.c
- mex COMPFLAGS="\$COMPFLAGS -std=c99" -largeArrayDims libsvmwrite.c
- mex COMPFLAGS="\$COMPFLAGS -std=c99" -I.. -largeArrayDims svmtrain.c ../svm.cpp svm_model_matlab.c
- mex COMPFLAGS="\$COMPFLAGS -std=c99" -I.. -largeArrayDims svmpredict.c ../svm.cpp svm_model_matlab.c' x7 H/ F; }' t3 w* T0 h' p
( j* b- |7 Z. n4 w; T, r' X/ x" F4 m
& u1 O5 J0 j3 a1 A3 M6 e/ Z0 t编译成功后会出现下图左边4个新文件。; @- q) A( W4 o" h& H0 y0 w9 M T
A0 Q; I3 t$ B! B( G6 a
5 |: M. ]* }) |
* L3 e$ M& A. k# ^& j
* w ]8 R7 O) o D4 b& T
|
|