|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm
& r9 |' q$ F% L+ p! j" w" |win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
4 |" u, D) F# e* n+ w1:装tdm-gcc-5.1.0-2.exe
- T3 A# g5 K: Z+ a! W2:添加libsvm) t+ B8 j6 A7 A* I
3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory
2 p, H) U% x ~3 Z0 wwin10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
/ S3 B3 I( {+ P/ S2 |1:装tdm-gcc-5.1.0-2.exe( b! a4 F5 A3 o1 O
在matlab中,敲入mex -setup(带空格),若显示& C% p; |( b N) D/ H: c: ^
q' c% B; k' M则到以下网站下载对应的编译器。9 A1 m3 q" L+ o2 j
链接 http://tdm-gcc.tdragon.net/download: x: T( h6 O# S3 D6 ?1 M
+ {) d$ N; \( [" Y2 U/ N按照步骤安装即可,路径什么的按照默认的就好。
0 [- @8 N. K7 T) ~. }# |& P" L在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。
$ @7 F% Z- h9 ]3 u" D; S8 u" l在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。6 J: |; S* b# f5 a
* c& O G8 j, ]# a3 ?1 n
在matlab中:
* t# O' b9 t( G$ r键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)
6 l7 d; I! p" X" k0 t+ {9 O/ M2 S键入mex -setup。出现下图:8 Y+ y0 n. g( \% x. F+ j4 o
3 @' U0 B& }3 x. `选择对应电脑的语言,我选择的是第一个。出现下图:& ]8 Y9 f3 ]! I! u+ [7 ]
, q. r' \. x- k _2 h. Y; L3 p2 l! I* O F5 W4 p# Y$ r
2:添加libsvm' Y6 w0 f0 |' n7 h5 o
官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
: f! S" [% w: E/ L+ I9 I6 y1 {
, ^5 o& e, b' \% g将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:
* ?) G# {% q6 K& S$ h7 q! k
( k& O9 N+ k# f A添加路径:在matlab中-设置路径(找到刚才的解压文件):
4 i+ d% k; ~ Z" s) k7 T
. j5 N2 Q" d; s( V) L! t
在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为$ W% |8 e) ?9 |
4 B0 c$ G5 T4 c) a4 S在这个前提下,键入:make回车;# d I/ ~- X6 i2 ^; i& D3 r8 |
6 b* a! ?, B% i! h/ v9 t# K5 n
* A3 J) C; M% w) o r1 r+ E _
3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory3 L' H6 l7 z7 ]) w
在导入lib时出现的问题:3 q# i; u! ]8 Y- i' v; J
1:
; `/ e9 ~5 c) @- O0 G" L6 v7 B$ a1 ~( t+ @% Y! }7 m
2:
' n7 M; X: ?$ Q3 d6 d6 \4 | [" F/ O B
解决:4 Q0 r0 T8 p' G' _: M0 Q
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。* |. ]3 G/ B6 h+ O! m" K, A9 P9 ?
再次解决
( [% { Q% |$ ]# P0 R将make.m里面的代码换成如下,就解决成功了。!!!! w6 e. @1 b' K, \6 }1 b+ }* w6 o) B5 e
2 S4 W; E- O U) T2 z
- 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 z. j! q2 W( v7 W0 [- h
- R6 {5 O" b1 z9 ~$ \- t
! }) A- Y3 ?5 ^1 \2 @
8 a' z: k: T5 X# v1 ]9 l, {) J编译成功后会出现下图左边4个新文件。! G! q+ p1 Q' d2 j% _" b
9 K+ F, X3 }. e
. c1 B! k5 h$ K$ U1 ]' P+ d% d, ^0 m6 l+ X! r7 W1 X6 ]& P
+ X* @% e: `5 S. n( J9 ~! Q' F: o |
|