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。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章