最近在使用Matlab编程,体验到了Matlab的友好。因为想要在算法中使用svm来学习训练,不想再自己写svm的代码,所以预先要在电脑上编译安装了台湾大学林智仁(Lin Chih-Jen)教授团队开发设计libsvm 软件包。
安装环境
macOS Sierra版本:10.12.3
Matlab 版本:R2015a
安装步骤
1.Xcode Command Line Tool
在从App Store上下载Xcode后,默认是不会安装Command Line Tools的,Command Line Tool是在Xcode中的一款工具,可以在命令行中运行C程序。
安装方式为在命令行中输入:
xcode-select --install
接下来按照提示安装即可。安装完成后,打开Xcode建立project时,有看到以下提示,则表示安装成功。
2.mex -setup
打开Matlab,在命令行中输入mex -setup
,但报出了以下错误:
搜索了很多博客,按照如下的方式修改以下配置文件:
在Matlab的安装路径/Applications/MATLAB_R2015a.app/bin/maci64/mexopts
(使用shift+command+g打开)中找到以下文件
- clang++_maci64.xml
- clang_maci64.xml
在配置文件中找到MacOSX10.10.sdk
修改为MacOSX10.12.sdk
再次运行命令,则编译成功
3.编译libsvm
libsvm下载地址:github
打开libsvm中的matlab文件夹,修改Makefile,
# This Makefile is used under Linux
MATLABDIR ?= /Applications/MATLAB_R2015a.app
# for Mac
# MATLABDIR ?= /opt/local/matlab
CXX ?= g++
#CXX = g++-4.1
CFLAGS = -Wall -Wconversion -O3 -fPIC -I$(MATLABDIR)/extern/include -I..
修改其中一个MATLIBDIR即可。
修改好之后,在命令行中输入make
,输出一堆warnning信息,但只要没有error,就算成功了。生成
- libsvmwrite.mexmaci64
- svmtrain.mexmaci64
- libsvmread.mexmaci64
- svmpredict.mexmaci64
四个文件,加载到Matlab项目路径即可。
4.测试
如上,则表示成功。