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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。1 q4 i+ Q1 d& m" N6 h

% j: P2 y1 z1 r- V' \9 s5 V" M% e5 h尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。, V, d' E4 f: p) R
1 h1 a5 B& y1 i" n# Z, y
下面的办法,是亲测可行的:
( W* ^- A. z2 w) \. A) a- P
1 Z6 p9 T2 I# u首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
, q& S+ B( q7 s# a$ Q1 s
' S+ B* B, G3 c8 \出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
4 [) c9 n- L- m) D5 o0 T5 U# t5 K  R  ?" O+ w" S/ M. K  p
在MATLAB输入:
, X" @, `# I7 S, g& b
3 Q# _  C7 X, J- oedit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])
; A4 b, U+ S! D* Z, e  U5 y8 S; ^' H  W1 x# V6 _" n1 l
打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)1 J4 _6 Q& l* R  r: G

" B% p/ c' G. p3 R& g
- M( n: u% J8 L! U% z4 E0 o, [: a: ]1 M/ l$ r* N% ~5 ^2 G% k
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
, T2 B% n( U1 l, V8 j0 ^; n+ k" g- k% {
打开finder,按住shift+command+G,进入:& f/ c: p  c( i+ y6 b

) Y% T* G- x2 H- f! I) ]/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs: M: |$ i% X3 \. ~
8 I( N/ Y$ {0 d9 S1 P) M
然后你就可以看到你当前xcode提供的开发sdk版本号了:% s% G. R3 q. n

+ M- a( y/ w$ G9 l( `& T% h+ F $ N4 v7 z  X5 D# @3 ?
7 P9 W/ k/ p6 x' Z
我也是从这里才知道我是10.14的。
7 H- I( I. J  W, G9 K3 w; R6 z' j5 O) `+ u
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。
  m& @  v" @. L. V: d4 S, p9 z# ^1 d& o
我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!
% d4 ^0 m' c$ |, B  L% B$ |' I: v1 {& n0 S! ~
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
$ z9 t) V8 @8 Q" Z# J, l! I0 n3 m2 G  Z' X! ?5 Y1 S
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
4 f6 F  _& G$ x2 P" o6 F9 l! Y$ z% ]2 v; U" `8 }
对了,还有可能会改了后会提示你:2 Z# {8 z6 X/ Z

  E+ i. n4 s" K; T% }
+ o) X2 u6 o' E/ E9 w+ ?% T% E" `6 ^% f4 U& h" W1 V
这是因为你还没给xcode开权限。1 m) u  G/ u) w  ~  d
. G& t- z. B! n  O# w, x
解决方法是:打开终端,输入:
$ I9 W8 O  Q5 t5 S! u% ~; O8 N1 e% g- A' z+ ?
sudo xcode-select -switch /Applications/Xcode.app' {* {+ A7 G' D2 c: u

0 |% g! u6 d3 P/ v; D然后输入一下电脑密码。OK!
- i0 y/ I$ m3 G! z/ [( s# v/ f2 \( b3 Y; _: P
除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。
. ~  F- j* f; e5 Z, `4 k7 }  v
8 x1 `* |$ {" y8 e8 ?: }0 k! ]8 a重启MATLAB,再试一下咯!$ b2 o$ i( U6 t
6 c9 F% b( c. b
按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
# f6 N7 [  G' b  T: {4 R* G) u0 P$ _% Y" r
Good luck!
& ?' j) M# e3 O- ?- u* q, }
& n( A; c1 B% B$ D, s' l' {3 ?
2 ~- p* h* ?2 B6 c' ?
' I9 k# F/ j9 j+ a: A

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 11:37 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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