|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
7 A4 Q& l/ Q% g0 C: y( {0 }* _# \win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
3 q1 p( X" L" q; Y% i/ r" C1:装tdm-gcc-5.1.0-2.exe. o$ f7 ]: _8 R( [1 z" P1 j
2:添加libsvm
+ _7 Q. f& u$ e. d, m: m! v y6 p3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory. n/ Q& `( y" A4 X3 K; n
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
V/ [2 g- q: J% Q" _1:装tdm-gcc-5.1.0-2.exe& n9 S0 ~6 Y: ]5 {2 f! O+ ^: k0 h
在matlab中,敲入mex -setup(带空格),若显示% G: C7 l! l, r9 C8 r6 _" d
7 w; B3 _- I; Y% {则到以下网站下载对应的编译器。
8 ?/ E/ j, I& w4 u7 W链接 http://tdm-gcc.tdragon.net/download- T2 c9 C+ Z" }% ]' }
1 E5 T" L+ J) |8 j8 x" T按照步骤安装即可,路径什么的按照默认的就好。
* H$ _0 M. b; L7 ?在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。
* w, s: {2 [- ]. \% S在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
0 p" ]; E0 b) h0 \0 O+ V
, w' ~+ r! G& h# R5 O+ {: h k# |在matlab中:
$ W8 E0 Y- c& i7 h( h8 ]) d- `: z键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)2 k5 _6 n' ~+ w9 V9 W
键入mex -setup。出现下图:
" v& q* ~, P+ Q7 V
$ z. |! W9 T; J* ~4 d" t1 Z选择对应电脑的语言,我选择的是第一个。出现下图:" ^, p A# Y2 W9 J [" ~
$ a, y5 y3 p) E5 M% w; e, m5 s% _; O( p
2:添加libsvm
$ y, K6 y) G9 @1 L9 T0 L/ }! C9 }3 u, l# }官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
& w' C' s/ C. h5 i: K4 @
) r4 W$ @7 y3 a, D1 Y2 g8 l8 Z
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:5 A* ~) e+ m/ m3 }0 \) e4 ?: V
" Z p# ~6 j7 o9 j5 Y2 ~4 `
添加路径:在matlab中-设置路径(找到刚才的解压文件):
8 C' D6 E$ P) i
1 w1 n9 \: t- k( b( x0 Z在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
+ F8 N1 v2 G @, O+ B/ G6 a% {
/ f- y: | W0 W1 h7 i
在这个前提下,键入:make回车;. J$ O; S6 e1 F, O
0 x8 n+ O6 ?: y/ C
% Y6 G" \0 D, P: V. }2 s" E7 g7 W3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory
& p* P" }6 L$ X1 J6 K9 ^在导入lib时出现的问题:
5 x" c3 r4 ]' T% U6 l+ b4 ^1:
$ s \1 `: E7 N4 e2 Y1 h! _ W
# n* b! f! @# ~. C9 a2:
# ?* r8 C+ E) i# z8 A" E E# j; a% K$ _& |3 s ^; T
解决:
2 L( o2 |# Y* ]9 H8 H即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。( H& O2 c B D1 C& P
再次解决
) K7 v; H; r8 Y7 }# _1 }将make.m里面的代码换成如下,就解决成功了。!!!0 ~$ H) f% t, z. x! }6 \; [2 H/ S
; E: m _9 A. z8 D" P1 e/ e
- 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.c4 t% X c# ?& ]4 Y3 M
( ^" s4 {6 _' m/ z" [
, F/ `5 g: |, }. F6 N- }/ ~& E9 B K. b7 M' S7 i* }0 z
编译成功后会出现下图左边4个新文件。: p$ @5 v( u7 `0 P% O. n6 ^) A
z4 y! ~! Y, a" d; _: I
# V5 {* l" ^0 o+ m8 \
; v' f x r2 t5 ^. r. E' @
0 p# s1 w7 x+ ]$ ] |
|