|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
% y4 m* K1 A- x+ X' qwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。6 u& F( w' |" r5 ~5 x5 Q
1:装tdm-gcc-5.1.0-2.exe
& F+ W( P% R; h2:添加libsvm
; o6 M4 H+ V+ J8 F3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory
0 c+ s/ Y- z6 k twin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。 U4 _" ?6 M; l% R# v, F1 ~
1:装tdm-gcc-5.1.0-2.exe
. e; F/ i* \5 c% Q$ I, k在matlab中,敲入mex -setup(带空格),若显示6 R) M% \# P* x5 j/ i
0 u$ A [6 p5 B% e则到以下网站下载对应的编译器。 N/ P: M. Q8 t0 ]8 I; C
链接 http://tdm-gcc.tdragon.net/download+ ~& i- a4 T" v; x" L3 l" X( J
7 [4 i7 V Y3 J# s7 v按照步骤安装即可,路径什么的按照默认的就好。
8 z. W3 ]; n5 Y" L9 ]. B在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。
: p U$ a% \8 d5 J' J# y在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
6 K1 C6 T' B6 Z: ^( r! @, I
' O: ?& d& R/ d5 N: k/ |5 D, o/ t在matlab中:4 x: p' h- R$ k# P5 @( Y
键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)
% z1 i8 g4 B) o! I9 P- {键入mex -setup。出现下图:
1 S# O2 L" B0 T, M! B
2 N. V. o+ g- K( Y5 s A6 g4 C选择对应电脑的语言,我选择的是第一个。出现下图:
3 ^; w3 D0 R( f; Q0 z1 t
! o$ B( {9 I9 Y' A( q% d0 r* ? } ]' K% \
2:添加libsvm
' `% q* U# d7 a2 q& O官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
, ]% k* D% G, I2 i! R
0 X$ u! u# E9 S" ]# T, ~9 e; {
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:
- q* w+ R$ r( D5 R& L: o4 C
' q+ k8 i: w0 n& H0 K7 x1 H) r
添加路径:在matlab中-设置路径(找到刚才的解压文件):
3 T7 I8 Q! k' W) K
+ h! S' r7 b( P) H1 d
在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
7 ^0 E$ Y4 F0 G
$ P. W& X, F" Q# J. s在这个前提下,键入:make回车;6 p5 d8 r) w7 E( ~( x' m0 W9 D
: R, `: B4 @3 E; J* w
4 N8 U7 e4 }; n& n7 k1 |: I$ r3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory
6 E; x7 G Q9 F在导入lib时出现的问题:; L, E5 ^+ g7 `6 A) B" {
1:
. s2 _- I: |4 |3 B. h8 f! E
6 C& B$ J) X" N2:
3 z4 M: }5 S4 r6 @3 N7 p& f
* p* ~0 d3 }; M7 ^3 C解决:
1 V/ D( h2 O n q5 H" \2 \' ?9 r即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。- r' b7 e) ?, o" D& M' M
再次解决- ?2 S4 l) W) i. L9 K9 `: A# S$ Z
将make.m里面的代码换成如下,就解决成功了。!!!6 y) W( T5 i3 M
8 | p' B8 d3 O6 n" P( _2 R! 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
% ^5 \* M* H. i" k5 \ $ o$ J7 {: Q( p9 \: m) H
+ Z! L) M4 i! s' S/ o
% p; X" S# R" i! h9 ^* }编译成功后会出现下图左边4个新文件。2 k1 Q& c+ J* M& E; n6 ]! C0 ^
" t) ~* b1 w/ [9 @( q; l8 _$ D3 J, A! W1 M+ b9 ~- T$ H
6 V& q2 {* n. z$ n; K# o; m
0 H. S) C4 l$ V& D3 ^ |
|