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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。6 R0 H* F  j$ o$ J+ ]1 O7 e
4 t6 x; Z( w* O3 B- a# ~% G% W
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。9 u/ \7 `3 Z! k0 m1 s& ?8 h

1 a/ c7 l& s  _0 ?3 P/ O1 A5 @下面的办法,是亲测可行的:; b( R! z! s6 J! r' l& E& T3 j

: m: r9 a3 [) Y7 R6 q* ]首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
& |- m1 h. w4 ^% l+ c1 f) Z
4 V1 w( f0 u3 ], N" H' g出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
  d4 }8 X: m5 q. W
' P* j. ~  ~, U5 ~  m( G在MATLAB输入:
0 i4 ~2 Y, J5 d# \+ o, w; s4 H3 S9 L( J4 y" A$ J/ V7 B7 F
edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])7 H! t4 r% n3 ]7 f" n; c: A( P5 e

3 T# q: B4 @2 B2 c) G9 q打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)  ]) T" |# N) U3 M9 ?$ H5 _; p4 H

8 H. G% i& v+ W$ w( H# O) t: o
1 y0 ^: L: ]# t8 v" U$ K& r* u, c7 i4 p0 D& s. S6 t. n9 i
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。& n8 d4 B5 b# E3 ~; n
6 O3 `! x0 N: g6 \: h# E1 S  d
打开finder,按住shift+command+G,进入:/ _3 S# |" l- `$ N( c

+ ]! o; e& p6 @" ^5 V/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs9 i8 T1 n* H; s# J: i' x4 f$ }+ ]
) Z1 q1 O. D2 w# m# Y
然后你就可以看到你当前xcode提供的开发sdk版本号了:  R( T$ O0 p/ [( z+ P" [
( k/ t6 \, a% R# A' B4 G

, |+ ?$ f% T" ]$ S' P! ?* m; s: H5 V+ w2 q  Z1 T7 o
我也是从这里才知道我是10.14的。* g1 A9 {' e: c' d: h5 ?* y

* x2 F' T/ m" d8 n所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。& A) l3 D  i$ a+ X& D$ s
- {: E$ ?" {  J; y
我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!
! U& k6 h. d/ E2 N5 R: e% J' q9 `2 d* Z4 m
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
8 ]4 ?0 h; z  q/ D) i  Y) A; ?; f& Q) B  F! m* ~4 m
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d91 i  l: ^" H4 z9 `) x% z; A

' W' F1 l2 O, o* a) P5 K8 Z对了,还有可能会改了后会提示你:
& e' h. R% M, U1 h! K$ |0 {( i! ~+ K# P1 R0 f

& p6 w+ O; B3 x5 g! F
: N) c2 n2 T, h0 c* |; S# q. h这是因为你还没给xcode开权限。5 G: ?6 w- W7 B' H  `' D/ n# L

; b0 d& B7 B2 @/ B( U1 i解决方法是:打开终端,输入:
# w4 V5 F- q' C: _( H; b) a; m# K" t/ p
sudo xcode-select -switch /Applications/Xcode.app
/ M' R/ W/ n4 b( M8 V: L1 `
- P2 L& q! p! Q. Y5 Y然后输入一下电脑密码。OK!
# l+ y, R7 a& k. }( ~3 I$ u& i
& m1 V$ z+ e$ c2 O; H5 H! Z; ]除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。0 O1 ^- X( x* E% O* }) E% c
& w8 V# D$ u! n( H
重启MATLAB,再试一下咯!
5 {- o# z) c9 e! \( @# A5 v; p
$ L& |* w' ~9 b& t) j2 c& c按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
6 R( z7 c8 A6 O" h6 Y6 Z+ ~/ U; h0 S6 N. Y5 P1 G2 w/ \$ W
Good luck!: C$ ~2 A7 f/ s, {
- u  b' W" h; @5 @1 I9 h+ x. Y

7 E! r0 i' J3 \% l/ J7 S$ o
2 A4 h  R# e" {

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-23 01:52 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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