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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。3 Y" t  ^5 J0 i8 i) h, E
. O. v9 f; ]$ e
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
' s* ~- B3 |( @% t
1 @. f7 }& W( G6 t8 v下面的办法,是亲测可行的:
. v+ V2 |, F: Z0 k3 p3 E% w0 G$ e1 Y5 c1 p# Q1 }) N3 D6 P1 p
首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
* J) A) D. p1 Z7 f  H% h  c) C& l8 h7 V$ @
出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
' C% k; ]  j" _+ T7 ]# p' Z& G4 f1 ^" I, f
在MATLAB输入:
, N/ l$ z* C. x8 s" G
& Z" K% w2 _8 S  k2 J/ h# i% ^0 Aedit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])/ L, }1 X5 c2 H/ e+ v. b) W- \

% ^# x3 m1 C/ _/ s( C打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)
, C: j! D% }: h1 b( u' W3 k1 F, C% i# i( s
8 J$ @* @" g5 c' p; D
* P$ I: K5 Y7 f4 r6 V7 G( C
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
/ _. i/ F( y: N. s' w9 {
9 E( Q$ b! J7 Y' ]* A+ F打开finder,按住shift+command+G,进入:" y6 O. ~, _# \7 G% ^5 {

/ A0 s3 u$ d9 [7 y8 a8 y. q/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" e- C0 y4 L0 p  U+ P

4 o3 L8 `( t4 G4 Y+ g, B然后你就可以看到你当前xcode提供的开发sdk版本号了:
9 |- N5 w, G/ }# E9 ~8 O' _8 n& W$ u: G
, O' q$ f! F% L& o: D( o
+ u/ y" ^6 w5 ]* G
: t3 X/ p9 r* N4 `  A+ t我也是从这里才知道我是10.14的。
" d8 w8 G, d) \8 w) B1 g1 \: l* r/ L4 @' L
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。
# }; e1 g' L6 V  }
; M9 l  c. ~0 g: I我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!  u+ @* J: ?- n) E4 ]9 g
5 F6 a: c: S6 L3 j
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
. S3 t- ~  ^% H% p( ~- r
/ [& K" o0 i+ O链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9& `8 T8 e: ]6 X6 p& l! T9 B7 `
: v  u- o3 U  u3 V4 V+ j9 A
对了,还有可能会改了后会提示你:! J5 R# r* G4 o5 A: X

" y8 `* q4 m0 w# j& @8 i
5 a! B4 G& W& x
- `9 n$ z; a" P& w* Z: w* V1 X这是因为你还没给xcode开权限。
$ y! T  n" V1 g1 G3 ?2 s) w
% M0 v, H; y- |' w解决方法是:打开终端,输入:; F6 X0 W% d+ p6 I) n: T
9 N" `: G; I! g" U3 Q8 u" {  h9 L
sudo xcode-select -switch /Applications/Xcode.app
1 K- B  M9 Y/ {) u6 V
6 {. B1 s! k! ~, ]- s; X% D* S3 V然后输入一下电脑密码。OK!* ~: j* n5 j2 O# T" n% O2 P

" m2 y8 K3 q* t4 s* D1 G; A; i/ ?除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。7 s* Q+ b" `3 r( I6 m! l; J
" _5 I! o# R5 z  l+ F
重启MATLAB,再试一下咯!
, O0 X5 E% k& T" w, W6 _9 E# n: k! M3 b: W% l: `3 N; ^4 r6 M8 o
按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。; ?( Z1 n! a( j
$ |( u: S3 ]0 W' I) ?2 U) F: j
Good luck!
! [, ]5 h5 J) |( @
, B2 l# _: E9 j; @6 H5 s2 x- z7 \! I0 [9 R

! L. }  L% i: M( Q' b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 15:18 , Processed in 0.203125 second(s), 27 queries , Gzip On.

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

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

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