错误使用 mex 未找到支持的编译器。您可以安装免费提供的 MinGW-w64 C/C++ 编译器

在使用Matlab工具包Libsvm时,需要对相关文件进行编译。
在Matlab中使用mex -setup时提示 未找到支持的编译器或SDK,Matlab推荐使用mingw64,那就安装吧。

编译器我下的是TDM-GCC 地址:http://tdm-gcc.tdragon.net/download

下载TDM-GCC(注意看清是32位还是64位),TDM-GCC的安装路径不要包括空格;然后新建环境变量MW_MINGW64_LOC,设置为TDM-GCC-64的安装位置; 默认安装在C:\TDM-GCC-64,然后进计算机>属性>高级属性>系统变量,新建系统变量 MW_MINGW64_LOC,变量值为C:\TDM-GCC-64。重启matlab,,输入mex -setup就能显示出来MinGW64编译器了。根据提示选择需要的编译器.

进入matlab文件夹,执行make语句。出现gcc: error: -fexceptions: No such file or directory错误。

修改make.m文件,将CXXFLAGS换成COMPFLAGS

此时输入MAKE就会出现第5步的错误,然后按照楼主的改一下MAKE.M文件重新输入就可以了

这时候就像以前安装libsvm一样,会自动make出来很多文件,不用管,主要是会看到make出带有mexm64后缀名的文件,这就成功了。

拷贝4步骤中matlab文件夹下所有make出来的文件,到libsvm-3.1\windows文件夹下,替换替换替换……,统统替换。

编译完成后,在当前目录下回出现svmtrain.mexw64、svmpredict.mexw64(64位系统)或者svmtrain.mexw32、svmpredict.mexw32(32位系统)这两个文件,把文件名svmtrain和svmpredict相应改成libsvmtrain和libsvmpredict。

这是因为Matlab中自带有SVM的工具箱,而且其函数名字就是svmtrain和svmpredict,和LIBSVM默认的名字一样,在实际使用的时候有时会产生一定的问题,比如想调用LIBSVM的变成了调用Matlab SVM。

添加路径

为了以后使用的方便,建议把LIBSVM的编译好的文件所在路径(如C:\libsvm-3.17\matlab)添加到Matlab的搜索路径中。具体操作为:(中文版Matlab对应进行)

HOME -> Set Path -> Add Folder -> 加入编译好的文件所在的路径(如C:\libsvm-3.17\matlab)

当然也可以把那4个编译好的文件复制到想要的地方,然后再把该路径添加到Matlab的搜索路径中。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值