|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
/ L- T% {1 Q! G7 Q$ @2 @win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。& o) x- U; O/ G, F+ k
1:装tdm-gcc-5.1.0-2.exe
4 [1 d! }8 ]* t- s n2:添加libsvm
; ^3 [. p* T$ ]# B/ n3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory2 i8 D" b2 Z$ s2 I, j8 i2 a
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。0 B6 e2 x7 t z. e1 c
1:装tdm-gcc-5.1.0-2.exe
6 d. `- [( r$ B( R W( n9 }1 [在matlab中,敲入mex -setup(带空格),若显示% f# c& _- V. s% p0 {. {
( w z O% n! A n1 J
则到以下网站下载对应的编译器。
z! i2 V3 R+ ~链接 http://tdm-gcc.tdragon.net/download- g0 ~! v: ^+ X4 a
7 d! G( J" [0 A2 J/ v& T" r
按照步骤安装即可,路径什么的按照默认的就好。
9 u5 D n5 n, j- u1 T) E \, U在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。
0 i- |5 ~. \4 ~/ l$ k在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
# O4 \5 Z4 ]& a% o1 c
! j+ H+ z3 V0 v ~在matlab中:
2 ?" Y) J' {+ ?( C P键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)8 @* f! z" B' w' Z7 s
键入mex -setup。出现下图:
9 n! H& O: O4 K% |* |' d4 L. r
( t c( a& {, J3 @( k% S. { W( u选择对应电脑的语言,我选择的是第一个。出现下图:& T# J, r% ?* p3 {" S- K
; j0 W* m6 l- z. L' b% a3 q
/ R7 ?7 w1 V3 y' A* Q4 F
2:添加libsvm
' T9 p q) A) i5 i9 E官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载& T# d% W% j+ Y4 X4 {, [' N
+ v7 Z; c" T, O' m# O; b" o0 h将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:
+ ] H; N! u! \( O5 @
4 g8 I, S4 v7 z; d5 w* C添加路径:在matlab中-设置路径(找到刚才的解压文件):8 j, q- U( [& B( |$ d3 j
% v8 e* A0 `7 w' A
在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
5 V( s! u0 j7 A9 F& z9 y
' m! r3 q. t# _" R/ j- j& U9 K
在这个前提下,键入:make回车;
% G: m+ }$ x+ z* @7 f' n+ l' ?" ~# |
' m" K: ~6 j( Q+ d2 Y8 D
1 |" B R0 r6 _5 G1 c: n3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory9 g9 S& e( \$ q. a, w {, ^& u
在导入lib时出现的问题:
: P2 d: v6 d8 X0 P8 {+ p+ N5 Q1:
) b/ g3 y4 s) c
, Y) q" S$ h9 i- n8 R8 ^! s- w; N+ [2:
4 [1 M" J9 K: n- S9 ], d
# g8 e9 o' J9 a& k% O7 G" I解决:+ _; I' }8 e5 q5 F
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。# Y( t4 R: h. E
再次解决
( }& D8 H/ i" T7 c) Z2 x将make.m里面的代码换成如下,就解决成功了。!!!
" @5 E; K+ k# `& Y
- u8 f: t) L# _- 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, t0 K3 s6 o! M" M- P0 W
; y" v6 d, S' l9 e/ `' b2 w! l1 u& m
+ J$ x; `1 P% O+ n编译成功后会出现下图左边4个新文件。
, h4 }$ B& y) H
1 f6 h. j8 z% X$ G/ r
1 a' ~; a; I' ], |1 D4 u- T- Q. {0 ?' v; Q- n
7 a4 |4 e6 [- J4 m1 T
|
|