Mac 10.11.6 让Matlab2014b 使用Xcode8.1进行mex编译的方法

近日下载了libSVM,打算学习一下。

然鹅,我的matlab2014b在第一步就给我挖了个坑。。。由于我有升级APP的好习惯,Xcode早被我升级到了8.1版本,悲剧的是,matlab2014b显然不可能认识这么新的Xcode。

上网搜索一番,从这个文章找到了思路。

http://blog.csdn.net/xia4o/article/details/50511629

原文给出了一个修改好的Xcode7的解决方案。仔细研究了一下,发现关键之处在于里面的bin\maci64\mexopts\*.xml文件中的内容。

Xcode8.1对应的Mac SDK版本是什么呢?从Xcode.app里面找吧。答案是10.12

所以把所有xml文件中,

<ISYSROOT>
            <and>
                <cmdReturns name="xcode-select -print-path"/>
                <or>
                    <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" />
                    <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" />
                    <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" />
                    <cmdReturns name="find $$ -name MacOSX10.10.sdk" />
                    <cmdReturns name="find $$ -name MacOSX10.11.sdk" />
                    <cmdReturns name="find $$ -name MacOSX10.12.sdk" />
                </or>
            </and>
</ISYSROOT>

以及

<SDKVER>
            <and>
                <and>
                    <cmdReturns name="xcode-select -print-path"/>
                    <or>
                        <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk" />
                        <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" />
                        <dirExists name="$$/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" />
                        <cmdReturns name="find $$ -name MacOSX10.10.sdk" />
                        <cmdReturns name="find $$ -name MacOSX10.11.sdk" />
                        <cmdReturns name="find $$ -name MacOSX10.12.sdk" />
                    </or>
                </and>
                <cmdReturns name="echo $$ | rev | cut -c1-10 | rev | egrep -oh '[0-9]+\.[0-9]+'" />
            </and>
</SDKVER> 
里面,依葫芦画瓢,增加一行关于10.12的就好。

注意,是所有在mexopts目录下的xml文件都要改。

弄好之后,重启matlab,输入命令

mex -setup
好了,现在可以愉快的编译libsvm了。


友情提醒,如果各位按照我的方法做,千万记得先给原来的mexopts目录整体备份一下,以防万一。本人只是自己测试通过,不对此方法可能造成的未知问题负责。

Use at your own risk。




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值