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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。- y9 E1 }) F( u, R2 I* F
1 t4 _  Q8 `& P) N, ^! F
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
7 B# |! a$ \, N! s4 w1 P) y6 I# ]$ N' k& s  F7 T1 G) @" X1 h
下面的办法,是亲测可行的:' v* U* _5 u, U9 p7 D
& Y7 l% g8 A7 ~: N
首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。% ~9 v/ {9 R8 I4 x

! q, f2 g, ^2 g/ W" S! Q  v出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。  K, h* U' `3 _  q, N+ N
6 R; U" d1 A4 y0 M8 U8 u' n
在MATLAB输入:
5 C  Z( [" M  z; n  v
: V) \* ~7 L/ U# L0 `edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])5 Q4 P" f4 p* Q& E- M

; s% Z% c. T1 t0 R6 ]. f打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)4 ~; r" e  J6 F, K$ o6 s' v

1 c2 c/ ]3 m" f& m2 B: [! J ; E2 x- D! H0 l8 B$ M

2 v8 v* i+ R1 A2 Y2 D, w/ E  y这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
' w# F" {; W" w! w7 e2 d
, R9 w4 ~/ `& f打开finder,按住shift+command+G,进入:
7 G# q3 K: b# D, w3 k( ~' N; E$ C* {
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
5 b- R/ @8 L. w% Y6 F0 T0 Z4 C
' u: _! y$ ^; a  s: I然后你就可以看到你当前xcode提供的开发sdk版本号了:
" B% o- T' l" A. J" ^3 g; ?* V& R( q( |, R8 K  J0 ~4 k
( z, g% ]$ J/ ~- E
2 Z$ _1 e5 {- u3 F, _) U+ q" \
我也是从这里才知道我是10.14的。
* z3 b" A& e3 M! [9 V& O! o& J, [1 i* G" `
所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。+ \2 d2 `3 V" K  C

  O' x. l4 B: v9 d我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!% l0 k+ y. v( v: a4 y6 w
6 E! f- i; X( N& J$ I
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:% x' k/ O! i  t2 x$ ?+ y' G
, N- o7 p5 q5 q: y* N. U* J+ }$ W8 y1 m
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
6 J' E3 a  {. z5 |1 \) K" c& t, E1 X$ d4 x7 r1 i
对了,还有可能会改了后会提示你:3 J  @5 ]" R5 T
9 R9 Z+ P5 ?# q( b
- i6 ?# F/ E( H3 T# Q- g- |
- x( n, \- c# v/ ~
这是因为你还没给xcode开权限。
3 ]; H5 r, c+ S  b2 \. l
! z1 a3 d; y! ^& K# E+ F解决方法是:打开终端,输入:. S2 q0 g3 Q; t- J/ e5 D0 E
0 Y1 w9 |' Z* f$ z4 V$ I
sudo xcode-select -switch /Applications/Xcode.app% T' P' b, n9 ~8 g' L5 v

3 V$ [+ `# p$ o* x: e* Y然后输入一下电脑密码。OK!
7 j1 o) p) I. T4 W( \7 F. w
& Q7 q5 p4 i4 B: `# u& y. B* L& E. N除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。
: U/ d  c: Q$ \7 K. j# X0 B
" F5 b3 {% p) H8 O( }: P重启MATLAB,再试一下咯!
4 C2 E* T: r8 D$ N
0 v% m$ O) d1 A3 V+ \按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
  N$ g- r" P! O. j8 P2 {# \: ?. V
) [, i$ n8 S( |- ?- o- N7 ]/ v0 ]Good luck!* ~$ Z+ k  y8 A$ q5 c

" r( Z" B1 s4 G% Y1 M5 q
% K; R4 B. K' D& V: @7 ^
7 l- \0 ], ?& O! R

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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