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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。( k0 _# q) q5 c3 O; w# w& [  Z/ N

/ s1 a7 s1 I: L5 D1 }+ V尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。
& t2 ^& p/ B+ v7 Q1 v! m
0 y/ A% C' X# r下面的办法,是亲测可行的:  W& _/ W! ~+ q

, d7 v7 V3 d9 i* e/ U首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
! U5 z( ^! Q- B) \( E3 d6 ~
8 P* S! g; ]+ k0 T' N: }, i出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。
" s+ f, p3 L) J( A/ `: ~
2 i2 L" {# t0 M' @  L* F2 O在MATLAB输入:1 G3 w2 m: z6 \) q, m; {
0 ~, K3 g* [4 N9 Y) M0 ^
edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])' {8 V. F$ Q1 N: N
" C" p1 y# c4 S' I' O: B2 s# P
打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)4 z; T* I8 c5 g, C) H. U
9 N* |$ |8 i4 ^  `5 [* S# k$ N
1 o5 w, A; A6 H) a. _4 [6 r

) u& c1 b: X+ g' ~: ]这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。
9 ~* R7 K" X5 w% O9 q$ f
$ m, S) @0 L4 @. B3 I打开finder,按住shift+command+G,进入:
: t' _9 R1 U, k0 G5 n9 z# e- d0 g# W
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs& t  s( Q# ?' p5 {/ z7 q
7 r6 h! ^+ ^  A
然后你就可以看到你当前xcode提供的开发sdk版本号了:  l, B+ {4 K5 T$ U9 Q$ g

' s. e2 |( ?* t. y- V: J4 k& c
, ]/ v' V$ ~6 ^) ~# v! O
" z7 Z$ z% W8 Z6 C& c% o* P0 [! i我也是从这里才知道我是10.14的。9 M* T0 C0 ~% H* X) h

, v4 C4 ^/ r9 M. r所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。
7 k4 }. G) d! G0 {7 g, Y4 `3 {- F, U% j5 c4 g- T0 H) m* v
我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!# H+ v! S( h( {+ E
% i, P. [2 [7 e$ O
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:
- }# C0 ]$ I, A6 y
7 F( G( t4 l  f' B" Z7 Y  ~4 M链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
# f) e8 u& x: L) g1 v8 _8 \+ v( j% _- q1 R+ l
对了,还有可能会改了后会提示你:
& H3 b- K' o; H* z. G3 T8 D% N1 F& `; m4 d' _$ a5 N

6 n, N$ {( M! t/ n: r9 d
- A( Y1 D: @' G3 L* o# l这是因为你还没给xcode开权限。
( |" ~- p( j$ c2 ?7 y6 z
" `! i" k) @% H! f解决方法是:打开终端,输入:
( Q1 h" w5 N1 M6 r1 W+ `0 O7 t6 \0 c. v
sudo xcode-select -switch /Applications/Xcode.app
9 g- |- ~3 _" h7 _* {7 C9 X2 c! V
" s) X  v4 |5 f& F" \( J然后输入一下电脑密码。OK!
6 j- y( g* i1 t9 C& z# |9 N
8 V8 {7 T: U4 T& g4 K; V除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。: t5 L. ]* Q2 A1 Q, g

0 W8 C: k5 M: ~重启MATLAB,再试一下咯!
0 N9 f2 e" l5 k2 W
+ c4 n0 T( X) b4 |$ H$ l4 I按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
. Q0 h3 z9 D; R$ c
  o8 ^4 M: R& t1 kGood luck!
9 _4 c4 U6 A' ^; ]0 q2 ^  y2 k# b0 I- l, a% |, i* T
" F0 R& m. c# D& G# Z
- L4 y6 P- \  ]& g. {0 j

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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