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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。/ L, p/ }7 L( V* v5 @
2 k( B% p8 g: K' ]# y# d1 B
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
) g8 \) z6 P+ I1 C9 V; v
( w3 D' @  F6 t/ ^  `. t下面的办法,是亲测可行的:, B: X( K" U/ `% u% X: u( N* Q" h7 Z5 D
/ r' s" }# A- |& q1 R9 c- f
首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
* c  w9 v, g3 r! I& R" p. o0 d6 y' l! P8 p% S
出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
3 @! |) J3 o2 X7 ?$ X1 ]+ ?. S- t$ S9 B
在MATLAB输入:$ s/ y% \- `  H/ t

( U; g! j  V5 [2 B" N" w* A7 _) wedit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])9 _! i, u) D$ _4 t* s4 ?) }
: F- y! O5 y* S
打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)5 x5 a, R) o# ?3 \- Y
$ y- i& k4 T  L/ W$ U

( H" l8 `: d8 m$ S2 f+ ^: p( |2 ]
1 G3 Y4 R8 S& t6 [- o; x! a这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
% a$ q4 r9 w5 H1 y- q
# h9 O8 s+ y1 s# _* u打开finder,按住shift+command+G,进入:
5 m" X' ]- }, i  _
2 s% q/ s0 f9 m$ N/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs. S" A, N3 ^. b* R) o$ s

# V# N; b3 `" @# q  S9 R然后你就可以看到你当前xcode提供的开发sdk版本号了:
) |! l3 p/ y7 H/ i: a/ e4 a/ Z! n- o- G2 M1 o
6 x- a1 ]1 I% \( V  V: y2 s( A
, v3 H3 U, B+ v7 N- M/ n: ~' Z
我也是从这里才知道我是10.14的。
7 R0 p" @$ v+ H1 u6 Q- v7 v6 z$ V8 t# z4 s+ |' v. U% j
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。; o  _0 K/ Q0 T% i" l. l

6 z' }/ R3 N/ v( P& W) F! p我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!
( f* @: l8 }, V  U; H9 C1 @# k+ g9 X" z+ t0 v# G5 D1 r2 G
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
4 A6 y  I" R" h, u6 K& q  Y& L% O! G1 W" b9 E+ n" F0 l3 [% T# }
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d99 w5 L) D; x3 W  N1 T& A4 d' f

6 ?0 ]" }5 t; B$ d! t# W对了,还有可能会改了后会提示你:
% m! S; j! D' v' d! {# j" R! n8 i6 g8 T8 Q
, U( n' ~$ {& H4 w1 @# D
, k: d9 g8 _: Y  X) Q
这是因为你还没给xcode开权限。) F/ y  e- L, ?* ^0 _/ P

/ c$ t) _" z" o! u/ y解决方法是:打开终端,输入:  l2 e" O9 q9 s/ W

8 I, R1 }5 A, f- lsudo xcode-select -switch /Applications/Xcode.app
8 y6 W  ^5 P9 {; N2 A2 X
, x# m% r( a3 M* d& m# D! o8 ^然后输入一下电脑密码。OK!
4 o: O6 b1 e2 I: B$ g
/ w2 e/ }4 D  [9 \* K! @除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。
5 p0 ~! N( {0 W% ?* t" g0 n/ |+ ^" \4 r+ q& N% I- q* w( F
重启MATLAB,再试一下咯!, P7 `# k0 q( `  k- n% m7 F

7 p9 f7 B' v0 N$ R按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。5 I- [5 @$ o% `: u& ?+ C/ E3 @4 f

) p# ~2 l' X' G# aGood luck!
, q' U' N$ Z8 }0 i$ a; d* {) A4 O6 K9 F: b+ x( s
  I+ C, [" q: K  q6 ~1 L" l$ n5 D

1 [4 t8 u! u% P

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-18 20:43 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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