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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。
2 I) u; ^1 _- s; k/ C# {
# k) u! [; ]1 b尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。0 ]1 |3 U- b4 ~% f
: \- z$ }& ?# k# Y8 K. Y, P6 Y* F
下面的办法,是亲测可行的:9 D! A. B: B+ B' z

5 V% u# Q; ~7 U1 x首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
7 |) E# R) d0 I$ E* Q& s6 B) p- t5 k% G
出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
. ]. r  P" q( ^; q3 K" [
( c; e2 @( I2 f) w- k* |在MATLAB输入:
. l, S3 T" y! R: {5 Q5 X$ Q
$ K1 Q! u7 g1 K- }" W8 D2 Uedit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])9 M/ p4 q8 S- [. F6 z: S
3 X6 X! ?" J# j& [  k
打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)! K) @2 }( l/ L* e2 U; r
& h. y$ u  ?+ t
* C$ z' V) [8 _, }7 H
. [/ A3 ~) \2 u( |' C8 w
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。0 P9 Y$ z) h8 {0 a* o7 ]$ ?
+ ^8 d. Y' @: g/ S, g: j" H  _
打开finder,按住shift+command+G,进入:
7 N( G/ w' @5 y% f
$ K# K2 y# V& H% {) I! M/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs+ v% K' y7 B. O1 W8 D/ o3 R% d

! U" E  Z. X  B$ H; d- d7 H. h( M8 G然后你就可以看到你当前xcode提供的开发sdk版本号了:" s+ l! V6 [. B- C! z/ G( Z

* I* B: a0 X, \! o( A6 N$ L
1 d5 `- g- U. e  Q; }% R3 s- J& f8 A0 g
我也是从这里才知道我是10.14的。. ~8 W8 a, M) A- ?
0 P, o. {9 I, z1 N
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。9 M8 J* V. |* R

8 ]% O: c0 m+ l; O7 p) [我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!. n( j5 ~. `7 d: a

0 j4 D+ F7 g0 b5 ^+ o' U/ j8 S如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
3 n2 B! \- N9 h+ \8 E6 J2 K! o/ i1 ?; Q" [! }7 ]% R7 m
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
# e# u; @( W& [( a$ o2 W+ F8 R. c! o6 u1 l3 R
对了,还有可能会改了后会提示你:
% z9 @; G' {8 t% R4 o
, [- [' Y% q  B% D" T! f' ^
: r7 L- D1 c# Q6 z1 |9 V7 B" i& t" D6 d; {- J
这是因为你还没给xcode开权限。
8 O+ k; o9 V% g$ \# j) h: X& }/ h# e) v
' F5 T5 E& c4 m- e解决方法是:打开终端,输入:* S! z6 m( K: M# u- o& Z  W& S3 I

. q# s& F8 J9 q/ r2 \sudo xcode-select -switch /Applications/Xcode.app
! B. M2 R  ^7 D% N9 b+ b* g
* _- G' {/ P/ o: l& G$ A7 B( ~, Q然后输入一下电脑密码。OK!
9 B+ o+ v2 s$ E$ o4 S7 f; v
3 L9 [8 O, i8 i0 r+ U9 L除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。
" h) {( b+ |1 q1 B
1 _! x! x' j* u( ]8 Y重启MATLAB,再试一下咯!2 u  P- e1 v0 m9 z7 c+ ?; B
: E% h6 [  ?/ n" W& N: k
按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
1 c5 z" c+ L. `5 r2 |0 x/ C9 K+ y9 h& V1 |% t4 x( M
Good luck!. j4 z0 d# J1 k+ T; G5 `& e, U

; @$ K0 m9 i4 Y6 T5 `" j0 w1 g* m* t( y/ x1 E9 }8 \+ _0 A7 [& i+ K1 _
/ z+ o3 a! u! }

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 00:41 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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