|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
9 ^. [" {% ~2 wwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
! M& g" Y7 B5 C6 ]4 q- V1:装tdm-gcc-5.1.0-2.exe5 j. a1 [. d6 [- x8 K4 u6 _
2:添加libsvm" t& E& L+ A) X* a
3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory
2 z# v1 t& b7 Wwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
' B5 B, R4 m* v+ _0 I1:装tdm-gcc-5.1.0-2.exe) R6 U) r& x2 F6 q& k8 s5 K! E* b! W
在matlab中,敲入mex -setup(带空格),若显示0 O3 I0 `# J" J8 k, w( X8 W5 c
& Z, d- \+ c8 j; K; |则到以下网站下载对应的编译器。
5 e+ ?; r y2 F& [/ B链接 http://tdm-gcc.tdragon.net/download. g4 i6 K9 I( ]* j* F. _. s( w
3 A4 s1 \9 O8 a
按照步骤安装即可,路径什么的按照默认的就好。( f5 \4 Y1 U) @8 B6 T- S& X, }* l7 S
在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。% B( S& f9 g6 q5 `1 x ]
在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
! c% W& D. x4 P; g" l% k; u
( R. k+ F9 Q# a, i) E. ] [4 h3 b
在matlab中:: w7 P' a9 f+ N
键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)
8 f) b! x1 D( X9 h- y键入mex -setup。出现下图:
$ N" [1 U) O) \3 S1 ^
$ n5 R, ^7 K/ x2 g0 D) |. p
选择对应电脑的语言,我选择的是第一个。出现下图:
/ u4 u8 u; c* W+ V* k; y+ i0 r# Q
; v$ q% U! }+ t6 r, `+ q' K& k
* `* T4 _& `: u* l
2:添加libsvm0 S% R+ G+ F) k' s5 u+ ?
官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
9 [; z* i0 W- W4 i( I
* h! K4 ^4 B" L* m5 e, l
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:
4 h* j- Q# O( ?/ G0 i/ f3 a
& @# s' n, _$ W2 p3 h E. D
添加路径:在matlab中-设置路径(找到刚才的解压文件):! y1 [. V/ o6 @. d
. g/ V) K# S' F) |& w在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为7 f) E' t# w( m* \& I1 L, R
# ^' S) a( k/ O! ?+ ~6 y2 P+ A1 R; K
在这个前提下,键入:make回车;: \8 g# c8 g9 z8 |! I
) e# K/ r" e) T# o# T5 P% a- D0 |4 \; ~" Q
3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory/ y$ S* }: V2 p$ V5 B
在导入lib时出现的问题:9 [! h/ U1 P7 V: w9 U
1:
5 L& _4 l# t% K2 k0 \; S% E
" g# F8 h$ V* ^* z t/ f2:
! T9 C8 ]- Y3 h0 Q* e# B
5 a5 p1 C3 S& F- _ h4 G
解决:
' M' j4 g7 Z* F6 S+ j/ V6 c5 V: A即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。) k N, g+ L4 U( H# }3 @3 W
再次解决; X; O5 E c1 e! g6 `( D: B/ i
将make.m里面的代码换成如下,就解决成功了。!!!4 V5 n7 I0 E9 F. `, `
, `0 d9 l1 i2 B; ]; W* p& \- 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
4 c% r' R1 L( S8 u8 k" A$ U" Y
8 `. [; ^2 {3 \, }
) |! i/ A' N7 x- k4 e* l* G4 K4 l- X7 A& R L
编译成功后会出现下图左边4个新文件。
) S7 n% j7 c, Q* i
' P' S/ q8 a( W6 Q, k# s! d
5 E4 l, c/ i) ^' n0 ^7 c$ v+ O% T1 T1 L1 l/ s, j; y
7 s7 b/ p( ?5 K |
|