|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
; u5 |( ~" x& S; |5 c$ dwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
, U( d' e1 h) [ C: b1:装tdm-gcc-5.1.0-2.exe) S2 @7 m$ J7 @( N! a8 c/ V1 ]
2:添加libsvm! u9 d* W* v- q) j
3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory2 S y0 C! Y6 M. f2 x
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
4 Q" g3 L1 }8 c" F1:装tdm-gcc-5.1.0-2.exe
8 [. t5 A9 ]$ S! y在matlab中,敲入mex -setup(带空格),若显示: y1 m/ L, Y9 l7 D! U
2 I& a% F5 h* [0 ]2 `; \则到以下网站下载对应的编译器。
# l& E; P( s" s; }; x' q' G2 m链接 http://tdm-gcc.tdragon.net/download. q" `7 D. Q5 P5 H% I6 W
+ H1 I; m! K9 F) @1 }4 Q& Y2 G
按照步骤安装即可,路径什么的按照默认的就好。
7 _0 o7 q$ c+ n& p在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。0 d0 S5 j* J# L7 n4 N8 v3 s S1 |
在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。- r% m# g* n. p( e. X8 `) O0 T
/ L- ^6 j }7 u, Q0 a/ S* e) X
在matlab中:
2 x3 W. S, L4 t4 h$ o" F键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’), b A/ N: v2 B( [, H0 j
键入mex -setup。出现下图:
2 F1 t' Q& j; I0 Z9 g+ r
B1 J$ X1 i! F8 F3 ?# g* R
选择对应电脑的语言,我选择的是第一个。出现下图:
$ k, L* i+ W! \4 r6 F( P
# i1 B5 G* A& A7 ~: ]. N' N7 n8 n
& ?# V* i+ g8 u7 C6 e
2:添加libsvm
4 p1 s* i. D; Q+ J- r5 e官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载" b/ @3 E |9 ]. i( a3 a9 D
, z2 U" A3 b+ U2 o
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:: R& @$ H. \( B1 H! H* z. d
: m+ q7 a9 u. K添加路径:在matlab中-设置路径(找到刚才的解压文件):
/ v6 L. ~/ I5 o3 @+ J
: @8 m$ X1 ~! ]# `7 i在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
1 e; |; i( i2 u7 v+ p7 h2 W
& k: o' t! {4 j1 L: l w在这个前提下,键入:make回车;
- V& L- b* y( t% n; e
1 |5 a8 z I. c- M: O2 ?/ D
! h! U" ]9 z0 ~1 D3 ?+ z
3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory
: Z# G4 Y+ ?- Y `+ d+ ~& ^2 V在导入lib时出现的问题:+ ?; L( V+ Y; z) E# s. v) O
1:
0 N: N1 a' N# `6 c& g* k% }+ f; i) p
2 P% @8 q. }/ Z7 v* L: x+ |: Z2:
" Z( Z4 Z2 ? }0 o1 d8 S7 e; K
x& H+ F9 f+ x0 X$ b# R) ^+ ` E解决:. e0 c, G4 G q2 F: U" P4 I
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。* X) J/ T- A2 ?+ W, K% s- X- D
再次解决5 c w- ^" F1 \* a i( z
将make.m里面的代码换成如下,就解决成功了。!!!
r& [1 I0 h# T$ B6 U& ^
3 K; Q" w- W5 H9 m0 w q* u- 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
/ [0 H& Y: i! D2 @ Q& O: D$ s 9 L2 w; l B% ^" Z" r4 g
9 F0 f) l6 N% d* }1 t2 D! r6 b, O) v
编译成功后会出现下图左边4个新文件。
1 B% z. r# o/ W- t
2 ?+ D9 ?% U1 H1 W5 G' f0 Y
B; x5 |$ y8 F1 \; D; r/ ^ |+ V, [- n4 Q" ]2 E/ y& }
8 S% A) f- X: K$ z7 A, I& t
|
|