macOS+MatlabR2018b解决“错误使用mex -setup”问题(配置xcode10)

2023-05-16

在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。

尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。

下面的办法,是亲测可行的:

首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。

出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。

在MATLAB输入:

edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])

打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)

这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。

打开finder,按住shift+command+G,进入:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

然后你就可以看到你当前xcode提供的开发sdk版本号了:

我也是从这里才知道我是10.14的。

所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。

我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!

如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:

链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9

对了,还有可能会改了后会提示你:

这是因为你还没给xcode开权限。

解决方法是:打开终端,输入:

sudo xcode-select -switch /Applications/Xcode.app

然后输入一下电脑密码。OK!

除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。

重启MATLAB,再试一下咯!

按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。

Good luck!

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

macOS+MatlabR2018b解决“错误使用mex -setup”问题(配置xcode10) 的相关文章

随机推荐