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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。
# ^; c2 T" U7 J0 F5 B0 ^$ p- b: s' _  e7 {9 f$ R4 b+ W
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
" S5 w8 E+ s$ K, E1 }2 C) x$ f* b. d8 i0 |, ?8 z: U+ ~9 a
下面的办法,是亲测可行的:7 N% m) t+ \1 M3 _) p
4 R% G& z2 c! w! ?3 l
首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
3 q8 s, ~7 d4 d# ~" p2 X0 S
: t) w" z3 i  G& U2 w& U出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
2 G; {) x6 E* j. O3 X$ A* e0 J) e6 x6 _. }3 h% d- T
在MATLAB输入:
+ w& F; c' o. l* K0 _( {1 ^$ V2 f; b- P9 a
edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])
7 Q7 N- @) I; L( K2 b* K4 P7 v+ }' b. v
打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)4 L" g5 C4 d. f$ K5 Y) {

) H% ]3 n( S% ^; R' Z' g3 o
* [5 {( ~" J. d+ t2 R: l, U# l0 b" d! C$ }
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。6 A: n$ K0 z) U! ~6 ~+ u, J4 O
) n: R3 X( g; s$ z2 @) w9 D1 m7 l# }# ]
打开finder,按住shift+command+G,进入:
6 h: r! I+ _4 O9 n" n' o( w* J
4 k8 d, V. A- }: P( y/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
# A& w6 y& h- X
$ A+ ^( g0 j* w% M& T5 }2 ]/ z7 Z然后你就可以看到你当前xcode提供的开发sdk版本号了:& y' d( s; _! ?+ ~0 \, r2 h
# K$ \+ M1 D1 C
9 I* F7 G+ U! f
5 K2 q* D+ s+ f  n
我也是从这里才知道我是10.14的。
1 Z) K4 e+ W6 |* s7 R
! [  R' U5 k$ R9 V* p, l0 d所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。/ E( K7 ~$ p" j$ x& {
6 Q- w9 ~. L8 {' J4 |; L& \
我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!, u0 J8 v' }) m2 @* _, c( f
3 P1 o" I2 u4 i
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:6 K6 W  P6 Y2 B/ {: p3 O

( x! e$ F: j6 b: G) v7 C0 f4 v9 ^链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
/ I5 |" k) B1 [, v
3 x+ ~$ D; f. P& W- ~! r. N; Z对了,还有可能会改了后会提示你:
2 O8 X! m1 e  s# X" Y+ g  v3 Z& x5 ^2 i/ T' @3 T
8 m, ~1 k$ p' _, H

" s' r+ E0 T% f! t2 A这是因为你还没给xcode开权限。5 H5 ?; s* ~; Z; X% V
/ h- q& O  L6 B$ x2 `# v
解决方法是:打开终端,输入:
3 H0 Z+ a( Y- m4 ^, j5 S( x' P$ H$ D! M& `
sudo xcode-select -switch /Applications/Xcode.app
8 s) {( h' _& z- l% Y( G
8 H7 {! ^* g7 L* E$ Z然后输入一下电脑密码。OK!
% H; J* m* f* T/ B! I9 W% t: |3 M6 ?7 t3 F
除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。4 a# c" i% ]8 |# Z/ T9 |# r5 H8 s
8 r; b: ]: R6 W  A& M
重启MATLAB,再试一下咯!; s+ q/ l* K+ T

! n, l% q# S* g; D+ W按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。+ E" k' v  m7 P3 J' a

3 U1 \9 F3 |9 u5 G9 P9 lGood luck!
1 Z& ^, C( |( D  S8 J8 E- t0 G! H5 M- Q& c8 B- V
; k6 N# V. Y. ~5 `. G
  a, L3 b, R( l7 Z6 O7 s

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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