libsvm下载踩坑MinGW过程记录(已解决)

因为要训练SVM,所以在matlab上要下载最新版的libsvm。按照其他博客的步骤一步一步做了之后,却卡了bug。

下载libsvm步骤:

1.下载libsvmLIBSVM -- A Library for Support Vector Machines (ntu.edu.tw)

 选择matlab对应的下载链接

2.将下载好的压缩包解压到matlab下载目录的toolbox

3.以管理员身份运行matlab

4.打开/.../libsvm-3.25/matlab文件夹

5.在命令行中输入make

make编译的时候,一直在报错

make
Error: D:\MATLAB\toolbox\libsvm-3.25\matlab\make.m failed (line 13)
未找到支持的编译器。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 https://www.mathworks.com/support/compilers。
=> Please check README for detailed instructions.

但是我有下载MinGW,而且C/C++可以正常编译。

所以我先试了一些“土方法”:

将make.m文件下的CFLAGS 替换成COMPFLAGS

结果发现我的make.m文件里根本没有CFLAGS和COMPFLAGS

然后我又去研究我的MinGW

1.在cmd中输入gcc -v正确输出说明我的MinGW下载无误。

2.然后我又将MinGW的目录放在我的电脑属性-高级系统设置-高级-环境变量的系统变量中,路径命名为MW_MINGW64_LOC。

3.在matlab命令行中输入setenv('MW_MINGW64_LOC',path),path为MinGW的下载路径。

4.正常运行后再次输入make编译

报了新的错,整一个大无语住。

使用 'MinGW64 Compiler (C)' 编译。
警告: 您使用的是不受支持的 MinGW 编译器版本。要安装支持的 MinGW 编译器版本,请参阅: 安装 MinGW-w64 编译器。
 有关当前支持的编译器的列表,请访问 https://www.mathworks.com/support/compilers。 
> In make (line 13) 
Error: D:\MATLAB\toolbox\libsvm-3.25\matlab\make.m failed (line 13)
D:\MATLAB\toolbox\libsvm-3.25\matlab\libsvmread.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
 #include <stdio.h>

查询这个报错,其他博客说是因为版本太低,然后我又看了看,我好像确实是下载成了32位的版本。没办法了,只能重新下载。 卸载之前的MinGW只需要找到安装目录并删除即可。

重新下载MinGW

MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net

官网下载,但是似乎是这个网站出问题了,下载的安装包一直下载失败,所以我们不用下载安装包了,直接下载合适版本的MinGW。

 配置环境变量

(1)我的电脑属性-高级系统设置-高级-环境变量的系统变量中:MW_MINGW64_LOC的路径修改为新的MinGW的下载路径

(2)我的电脑属性-高级系统设置-高级-环境变量的系统变量中:path路径中,之前已经有的\...\mingw\bin修改为新的MinGW的下载路径下的bin文件

编译libsvm

再次回到matlab页面

1.打开/.../libsvm-3.25/matlab文件夹

2.在命令行中输入make,发现编译成功(我的虽然一直有警告,但是不影响)。

 3.然后将下图中四个编译好的文件复制粘贴到\..\toolbox\libsvm-3.25\windows文件内。

 4.matlab中配置路径

在主页-配置路径中添加以下路径:

 配置成功!

来自大佬的解救:修改之后函数即可用

svmtrain  ——>  fitcsvm

svmclassify  ——>  predict

但是新的MinGW还需要下载新的编译器。。。(碎碎念)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值