找回密码
 注册
关于网站域名变更的通知
查看: 691|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-28 14:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。
/ ~" `& c# J& W" ~5 {
, G8 H5 J: E+ B; f尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
, V+ a! M* @" y3 B" k1 A& E! x7 n9 O) O7 M5 [
下面的办法,是亲测可行的:
8 S  V) |" c, y
$ R9 A7 X8 |, _. `0 ^! S首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
- u, l9 L9 Z3 E0 O) }! P( A; T- B* f1 B* x" ?
出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。8 J% m5 G. ^+ c6 H8 M
! Z( c* m: Y% Y) q8 `
在MATLAB输入:. Q3 `% c. R: A+ c" B5 L, Z
  g3 {" L& N/ g& H/ u/ c: e
edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])# @; x7 ]. O; N# Y/ |* t; M

. z/ Y5 L& S; c) ^8 F' A( I' o打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)5 B" H, |! h/ ~2 `( |2 |

2 q4 c* |0 y+ Y  O# h: D 4 z: `7 A# t: x/ t) S
) k4 A/ v; w& u, o8 y& S
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
9 r; X2 x: P$ v# w
% L. O, N  {6 c- ~! D打开finder,按住shift+command+G,进入:
* ]  a# _0 n' G: d# i% S; t5 R9 \
( R& p# Q) Q" S/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
6 j" v. I0 F% Q% ?5 E. }9 G5 c  M9 R8 i( v
然后你就可以看到你当前xcode提供的开发sdk版本号了:
  P& X9 r4 C% a# j6 R+ U  h8 o  L1 |/ I
8 E$ X/ Z8 K8 s  I0 Z

3 |) }. Z1 T0 e8 X/ \我也是从这里才知道我是10.14的。
: G0 s& W' c0 A) U; o. K7 p, H2 E# W0 E* k' C4 l$ }
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。4 Y. `" E# B7 O- ^& K0 E3 r

# f7 z1 W( R! U) f我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!% d+ ~; Y1 }4 p! W3 i1 M$ _. ^
# y! ?$ ?( I7 G" ]: @2 f
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
2 ^" r4 \+ D# l
4 B/ Y5 V& f4 K' s, w) U: w' ?链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
0 g/ `* \) q. L- s7 X* V4 G9 {6 f
2 l& f! O" t9 [% |. k对了,还有可能会改了后会提示你:
) Y, `( s0 z. V! E1 W- Q4 Y8 p0 D3 i9 \& [% t9 N& J

" d, n) E' r$ f8 S# M# N2 P# e, i+ M' D
这是因为你还没给xcode开权限。: E0 ?6 H, n# \& u$ R' U

+ b/ ?4 R: r8 n解决方法是:打开终端,输入:
, p" B9 P  P4 f! {& ^( ?
* B7 Q7 ?. G# T  U! asudo xcode-select -switch /Applications/Xcode.app
' ]9 B* V" O8 F" n& r2 W* h: E2 r( I7 m/ v5 ?0 U
然后输入一下电脑密码。OK!
- G4 C* o" F! \0 X& g  D! x! S  R  A% P  U$ U6 s
除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。; T( u: P+ ]; |( k

# N6 B" u. c8 W1 c重启MATLAB,再试一下咯!, D& P' W2 R3 p! v1 Q9 t7 y

/ A% h7 b; a7 Z: G" Y! j! O按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。0 Q/ W+ H" \  U2 E: q
! C+ l+ i0 {+ v$ Y" `6 y
Good luck!
% Y, f9 H+ O" A- j$ ^" J* f  `$ G1 N/ Z6 B# h7 M/ b0 H; L
3 f1 o, {& c+ V( }: h' ^- Z( K, R
4 B! e% I% H' x% {

该用户从未签到

2#
发表于 2020-5-28 16:03 | 只看该作者
macOS+MatlabR2018b解决“错误使用mex -setup”问题(配置xcode10)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 04:25 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表