|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab安装编译器,导入libsvm( X% Z; S- [# M) x* h @
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。
8 k8 w: G7 |, J( {/ i& E) ?1:装tdm-gcc-5.1.0-2.exe3 b# Q) R. [+ h; k# B. @
2:添加libsvm: t! ]( y) U; ^! @
3:**问题** Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: \-fexceptions: No such file or directory6 F3 a. Z% X9 f! h' a
win10 matlab2016b装tdm-gcc-5.1.0-2.exe,导入libsvm包过程及解决相关问题。3 E+ a4 n# V7 j+ k. O4 j( P# u) e
1:装tdm-gcc-5.1.0-2.exe
6 R% U: B- Z: C3 ?$ a' p% U在matlab中,敲入mex -setup(带空格),若显示* |& ?4 |4 e) b6 ^. y* @
4 S$ v& a _3 l则到以下网站下载对应的编译器。; ^/ O" `6 ~8 ]8 P7 e. [
链接 http://tdm-gcc.tdragon.net/download* ^; u j5 D$ J
J0 k- f$ g+ [- e D按照步骤安装即可,路径什么的按照默认的就好。+ F8 f; c Q2 N
在系统属性-高级系统属性-高级选项卡-环境变量-系统变量下,选择新建:在“新建系统变量”对话框的“变量名称”字段中输入:MW_MINGW64_LOC。
- ~- T1 ?, ~8 K) A在变量值字段中,键入MinGW-w64编译器安装的位置,例如“C:\ TDM-GCC-64”。
) x, s8 f" z( q; k$ v# l: y; r! j
; q% T# X( `+ y p2 z9 B
在matlab中:+ |1 ^2 C5 n4 c( k' ^
键入:setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)
5 a# m& X3 X0 D, {7 {/ }/ v9 J键入mex -setup。出现下图:
3 y- Q8 k; L" K: g* A. I! Q& o
8 z; N# C6 }: f' t: Q1 y- j5 s选择对应电脑的语言,我选择的是第一个。出现下图:
, q! e" q0 t& H% ^+ H. s
( q4 K- }- D' k* U2 R E* F$ Y, @* Q* m9 g
2:添加libsvm6 X* r8 @1 U6 H& _
官方链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
* p6 E, t) k! O$ e
5 q+ z# G/ r- R& C2 R
将其解压在一个路径中,并添加到matlab的路径中。我的解压在了该位置:
7 ?! W$ [/ P; I9 M0 b! [# B$ t
. T" z* G' ~ P0 i# O添加路径:在matlab中-设置路径(找到刚才的解压文件):- m2 _% a; S( e5 _/ {
* t9 n# G0 b. Q! S6 C, \% b在matlab中打开解压文件中的matlab中的make.m文件。即当前目录为
% o8 @) f3 W0 y& L2 m. T
f X* d% n7 f' E4 z在这个前提下,键入:make回车;+ P" [* Q: A m: ^, ^1 {3 r7 v
- S! K' T' c% b# A
4 m( o+ g3 \2 u3:问题 Error: D:\MATLAB\R2015b\toolbox\libsvm-3.22\matlab\make.m failed (line 13)gcc: error: -fexceptions: No such file or directory4 N+ s/ b: M" o3 Z
在导入lib时出现的问题:, {6 e. d; \4 d0 }+ A
1:
2 K* r- W- s: y) t4 q8 ^+ d
+ _' i9 ?$ i o: N. k: k2:
8 Z4 k5 k0 {6 I* `
7 E& M% q3 d! g* V( w
解决:- p) Z5 d2 J* `! O
即将make.m文件中的所有 “CFLAGS”替换成”COMPFLAGS”。我尝试了,但是对我的问题并没有解决,变产生上面最后一张图片的错误。# ^6 w5 e$ d5 h* E. w5 ?% J2 b
再次解决6 N! ^+ P4 [, W. [7 ?- r
将make.m里面的代码换成如下,就解决成功了。!!!
; D3 L4 x# n+ e9 x7 `$ ?$ `! m( [" J$ K% v! z9 M) C8 Z, x" j
- 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
; a4 r3 A9 p' \
& Y8 I/ @: f+ U! p6 F( W& d
9 C# K. }) ~& U. }! E) M2 `# h
9 S0 {: H p7 o* S! g编译成功后会出现下图左边4个新文件。
* S3 M+ N; z2 D5 c0 H, _. z
9 _6 j6 b5 f9 l5 x' a5 x
! |6 j3 d7 J2 j+ K: L* s; p/ M$ W8 B, Q' m
4 O9 o1 W9 f" K& Y! W
|
|