作为一个需要写代码的研究生,入手Macbook是很纠结的。还是想要体验一下Macbook,入手以后各种软件balabala的安装也是费了好大功夫还算顺利。安装libsvm的时候,发现可以参考的经验还停留在两年前。内心是崩溃的。
半参考半尝试,最终成功安装了Libsvm。
环境:OS X OS X Yosemite 10.10.5+matlab2014b +Xcode7.11+Libsvm-3.20
步骤:
安装matlab
安装Xcode+Command line tool
编译Libsvm的准备
有查到一种方法是使用patch打补丁,可是能够找到的patch真的是很老很老的,没法用。
在这里不用patch。只是在两个文件里相应的位置修改一下以适应自己安装的Xcode版本。
(1) mex -setup
这一步运行成功,可以看到的是
/Applications/MATLAB_R2013a.app/bin/mexopts.sh :
Template Options file for building MEX-files
所以,首先需要改的就是对应目录下的mexopts.sh文件。
打开mexopts.sh文件
$vi ~/.matlab/R2012b/mexopts.sh
第162~164行改成:
CC=’gcc’
CXX=’g++’
SDKROOT=’/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX***10.11***.sdk’
MACOSX_DEPLOYMENT_TARGET=’***10.11***’
加粗斜体的***10.11***部分,可以根据SDKROOT前面的目录在自己安装的Xcode里面找到,正确设置才可以。
(2) mbuild -setup
这一步运行成功,可以看到的是
/Applications/MATLAB_R2013a.app/bin/mbuildopts.sh :
Build and link with MATLAB Compiler generated library via the system ANSI C/C++ compiler
因此第二个需要修改的文件就是mbuildopts.sh
跟修改mexopts.sh相同,打开mbuildopts.sh,在相应的位置修改:
CC=’gcc’
CXX=’g++’
SDKROOT=’/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX***10.11***.sdk’
MACOSX_DEPLOYMENT_TARGET=’***10.11***’
(3)还可能出现的错误
In file included from /Applications/MATLAB_R2013a.app/extern/include/mex.h:58:
In file included from /Applications/MATLAB_R2013a.app/extern/include/matrix.h:294:
/Applications/MATLAB_R2013a.app/extern/include/tmwtypes.h:819:9: error: unknown type name ‘char16_t’
typedef char16_t CHAR16_T;
把tmwtypes.h文件里面的
typedef char16_t CHAR16_T;
改成
typedef UINT16_T CHAR16_T;
然后就可以进行编译了。
4.编译Libsvm
将matlab的工作目录切换到limsvm-3.20所在的路径,在command 里面进行
make
当你看到产生了一些mexmaci64后缀的文件,说明编译成功了。
也可以在 上找一下包里自带的例子测试一下。
搞定~~
相关资源:翠雨方工作备忘录工具v2.31中文绿色版-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!