MATLAB安装配置libsvm(matlab mex -setup缺少支持的sdk或编译器)

MATLAB安装配置libsvm(matlab mex -setup缺少支持的sdk或编译器)

由于最近实验要运用到CS-SVM(代价敏感SVM),安装libsvm进行尝试。
由于libsvm包里需要用到的文件是c文件格式,需要转化为matlab能用的dll文件格式,这需要用到编译器和mex -setup和make等语句。博主之前盲目照搬相关博客里的方法,吃了很多苦头,这里记录一下。

libsvm包

1.首先需要下载libsvm包:

从林教授的网站上下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/

2.将libsvm3.23解压到matlab/toolbox目录下:

解压后:C:\Program Files\MATLAB\R2016b\toolbox\libsvm-3.23

3.运行matlab,在matlab主页(home)的**“设置路径(set path)”**中添加libsvm:
设置为:C:\Program Files\MATLAB\R2016b\toolbox\libsvm-3.23\matlab

编译C文件(重头戏)

正常情况

  1. 在命令行窗口运行mex -setup:
    MATLAB安装配置libsvm(matlab mex -setup缺少支持的sdk或编译器)
    2.出现如上内容,再对C语言文件进行编译,在在命令行窗口运行make:
    MATLAB安装配置libsvm(matlab mex -setup缺少支持的sdk或编译器)
    就完事了。

别的情况

1.如果出现:
MATLAB安装配置libsvm(matlab mex -setup缺少支持的sdk或编译器)
可以先试试setenv(‘编译器系统系统环境变量的名字’,‘编译器安装位置’),再重复“正常情况”的步骤。

2.之前没有装Visual Studio之类的工具,没有C编译器,则写mex -setup时候,也会出现上面的情况,这时候先应该点开图片中的网址,查看自己版本的matlab支持怎样的编译器再去下载相应的编译器。
(!!!!!!)博主之前有matlab r2014b,没有没有装Visual Studio之类的工具,盲目跟风下载TDM-GCC编译器,其实matlab r2014b是不支持TDM-GCC编译器的。后来查看图片中的网址,发现matlab r2014b除了支持部分vs编译器外,还支持Mirosoft Window sdk 7.1(有兴趣可以看libsvm的make或者mex不成功(No supported compiler or SDK was found)),可是由于Mirosoft Window sdk 7.1需要有.NET framework 4的支持(关于查看自己的电脑用的什么版本.NET framework),博主电脑里已经有更高版本的NET framework了只好放弃。因为不想装Visual Studio,只好重新下载了matlab r2016b(下载matlab r2016b MatLab2016b**版安装教程)。

3.下载并且安装TDM-GCC:http://tdm-gcc.tdragon.net/download ,配置系统环境变量,变量为:MW_MINGW64_LOC,值为:TDM-GCC-64的安装位置。

4.在MATLAB命令行内运行命令

setenv(‘MW_MINGW64_LOC’,folder),folder为TDM-GCC的安装位置,要加单引号。

此时mex可以正常使用,不然重启matlab即可。

5.make出现问题(请查看MATLAB安装配置libsvm(附MinGW64配置)