|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
' w; j: ^! ?; ` _7 R1 i& h/ m4 lwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
% d+ y1 R% z& h1:装tdm-gcc-5.1.0-2.exe' A3 u$ i4 Y+ O. Z2 k+ J
2:添加libsvm6 ?7 v% C+ y5 n" X( j
3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory& G0 W. w. |5 `2 K$ h
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
. N+ v- ?* A" N# Q1:装tdm-gcc-5.1.0-2.exe, R$ d* v% l% ]7 E: ~; J, Y
在matlab中,敲入mex -setup(带空格),若显示
. [2 T+ ^- X0 w/ h' S
' i+ C# a2 A3 S/ t/ X
则到以下网站下载对应的编译器。$ |/ l1 G o, h# ], A
链接 http://tdm-gcc.tdragon.net/download6 N3 z# D% z$ ~: t! O
U) y" t5 H0 y2 {9 c/ k* m按照步骤安装即可,路径什么的按照默认的就好。
# r. I# }) m4 j% h2 T& I; l" Q- T在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。 w W7 @: d, l/ H4 T
在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。" W: C7 M/ Q+ \, l7 c5 z$ Q8 O- f1 O
2 q. p% d- n4 J$ [6 e8 Z4 t" N
在matlab中:0 x7 D, z) P7 |/ Y; U
键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’) Y5 \1 U. Q4 C7 z- N
键入mex -setup。出现下图:
5 B, p, l1 g1 H" Z4 l
- P4 ^ d2 n, ]1 m
选择对应电脑的语言,我选择的是第一个。出现下图:
% n; ]0 Q, l, C- Q9 b5 d; c; d
' p( e# F% K- w
! E2 y! \9 B: E* X: }
2:添加libsvm) }, y6 ]: Y- v s
官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
2 p- s9 q# R0 q& e" ~
; n4 W# P) k' u+ x O( L; [' G' |
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:( O$ B% R. d8 Z% N7 ?. f- F* J7 U
, O3 J" J- m, ?. j. N0 X0 z- W6 p添加路径:在matlab中-设置路径(找到刚才的解压文件):# B1 D$ G! F* K4 ~+ g1 d
, a% q- @* Y# h- y$ d( `在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为. x4 q1 X( B" l/ F! a8 m
- p7 U7 H8 B0 v' ?
在这个前提下,键入:make回车;
* n5 n! ]& E! g k
$ z- R: G# P6 |, ?9 s
5 H+ R2 |5 r; v0 ]0 M3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory, r1 D% i5 F# Y Q$ E8 F7 r9 |
在导入lib时出现的问题:
) z4 B& v7 D' w. H9 J9 j1 a: ]* l1:
/ P" L% e. f1 t( N' x P( x6 O1 g2 I
* K n2 p ~3 m% F- t9 o, \1 J2:
7 \, ~5 @8 R' [
/ J7 T0 j/ l/ E9 [3 N解决:$ ?8 r1 z3 P: y( G' H2 X, F, k
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。
N8 c' {; x/ \" ^再次解决
8 A9 I, V* x: _0 ^将make.m里面的代码换成如下,就解决成功了。!!!
" @/ N* d+ q7 f- D7 t* ^6 }0 b! p$ g$ o) s- S+ Q9 H) z% 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.c0 [0 q2 @+ R* u; W* j2 h) D" q
3 i* M9 q8 {2 ~; Z% s" {( J
" |& K5 c: e- x8 d) h1 `# m9 l# d
' a8 s9 C$ L6 O K2 S6 e编译成功后会出现下图左边4个新文件。* [% K6 q* C: y9 C5 P" Z
6 U v$ y7 S2 m9 b
" w, p2 D* ^. e/ e
! z d/ x7 R; ~) ]! M7 \
4 s* k8 \2 J/ ], X- @, e$ \/ Y9 D$ @ |
|