最近在学习论文:
A New Approach to Cross-Modal Multimedia Retrieval
运行demo_sm的时候一直提示train有问题,后来知道源代码是基于linux下的matlab编译的,用到liblinear中的train和predict函数,需要在windows下进行编译,这个问题纠结了好几天,后来放弃了,昨天晚上重新查找问题,看readme文件,才知道要安装liblinear库,之前还要安装编译环境,折腾了好长时间,最开始使用源码库中的liblinear1.94版本编译,只能有两个文件编译成功,核心的train和predict不成功,所以源代码还是无法运行,按照下面的方法,换了一个liblinear版本后,终于顺利成功了!
有时候搞科研可能就是这样,一些小点导致浪费了太多时间和精力,还是基础不行啊,以后遇到类似问题,不用太纠结放太多时间,否则既打击积极性,又没有收获。有时候认真搞清楚本质是关键,有时候适当放一放,不能一件事情浪费太多时间和精力。
需要用到LIBLINEAR,但是在安装的过程中遇到了一些问题,在这里总结如下,希望对大家有用。
也希望和大家在这里一起交流,一起学习,一起进步。
安装环境:
系统:Win7(64位)
MATLAB版本:MATLAB R2017a
LIBLINEAR版本:liblinear-2.11
具体安装步骤如下:
1. 下载liblinear-2.11安装包。
下载地址:http://www.csie.ntu.edu.tw/~cjlin/liblinear
具体位置在蓝色方框内
下载后可得
,并解压。
2. 将解压后的
中的
添加到MATLAB的搜索路径中。
方法一:打开matlab(版本:MATLAB
R2017a)选择 主页(home),然后选择 设置路径(SetPath)
方法二:打开matlab(各个版本均可),在命令行窗口(command
window)输入pathtool,并回车
上述两种方法均可得到下图,点击
添加并包含子文件夹(Add withSubfolders)
选择 matlab文件夹,再点击 选择文件夹
选择 保存(save)后再选择 关闭(close)

在命令行窗口(command window)输入mex -setup会报错(注意:mex和-setup之间有一个空格)
为解决该问题,需要安装编译器。
3. 下载
TDM-GCC(64位)并安装
下载地址:http://tdm-gcc.tdragon.net/download
选择相应的安装包,这里下载的是64位的(对应计算机Win7 64位)

下载后打开并安装(注意:安装路径不要有空格),一直点下一步直到安装完成。
然后,新建环境变量MW_MINGW64_LOC,设置为TDM-GCC-64的安装位置
具体操作步骤:
打开电脑桌面上的计算机图标

,选择 打来控制面板
在控制面板中选择 系统
在系统界面选择 高级系统设置

在高级系统设置中选择 环境变量
点击新建,变量名:MW_MINGW64_LOC,变量值:TDM-GCC-64所在的安装位置,如我的安装位置是D:\TDM-GCC-64,之后选择 确定,再选择 保存

现在,在MATLAB命令行窗口(command window)内运行命令setenv('MW_MINGW64_LOC',folder),folder为TDM-GCC的安装位置,要加单引号,如我的是 setenv('MW_MINGW64_LOC',' D:\TDM-GCC-64'),输入后点击回车。
重启matlab
在MATLAB命令行窗口(command window)输入mex -setup(注意mex和-setup之间有一个空格),之后点击 回车,选择 mex -setup C++
之后显示
至此,编译器安装完成。
4. 在
MATLAB
命令行内运行命令
make
在MATLAB命令行窗口(command
window)输入make
按 回车 后出现
解决办法:
修改make.m文件,将红色方框内的8个CFLAGS换成8个COMPFLAGS

再次在
MATLAB
命令行窗口(command
window)
输入make
点击回车后出现
至此,我们成功安装了Liblinear。同时,我们发现解压后的
中的
文件夹中的内容
从
变为
多了4个后缀为mexw64的文件。
参考博客:
1. Matlab Liblinear安装及测试过程
http://blog.youkuaiyun.com/xiaopihaierletian/article/details/54317707
2. Matlab安装MinGW-w64编译器
http://blog.youkuaiyun.com/desire121/article/details/60466845
3. Matlab2016a mex -setup出错的解决方法(VS2013)
http://blog.youkuaiyun.com/catherine627/article/details/70472848