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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。
% P" m8 ^$ e5 p3 s/ w$ D6 y7 r+ F; ~, Q- @8 S. F
尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。8 c) {) x- s& p  C

3 B& g9 ^* {# `% h3 y8 N. V下面的办法,是亲测可行的:
: \# Y5 d1 ?5 F, a! H7 ]- ?. Z0 ]. ]. u; t
首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。
" W9 q0 g0 J# G8 X
- \/ _. t; ^9 c5 S, L& N) k出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。% X' g- ^% m# V  h$ W2 _
0 W6 Y) X( l7 T1 x( [+ V# F
在MATLAB输入:5 b! |( S. |( ]9 S3 L7 Q
5 V4 O. C( g) r- i6 u
edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])
% z$ f) {0 @( J& X) h
4 U$ P2 h, p+ b3 @, n: l' {# C打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)
$ P9 h. e, ]5 x5 E" N' Z! o+ h- _2 w- t8 |; j  g- ?5 `  M
5 z  C8 u  E; H. M/ D" e
, G; y" c' d# ~, V0 ]
这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。& P2 o$ ^2 e! ]3 }
. F" S. ^2 m* a* i
打开finder,按住shift+command+G,进入:
6 R9 D- P+ O9 v- q1 P- @9 k# b
4 W: M% N, ]3 f5 q: a; N2 B' T! r/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs7 R, {9 L  Q. ~5 J

/ u) V3 s& t% s( E7 v- K9 g然后你就可以看到你当前xcode提供的开发sdk版本号了:" |2 Q. |2 w$ w8 S' i' O/ q
( T3 Q3 n# ~+ }& R' _

7 h7 ~) }) j; J! i2 s* F3 U6 T. l* l* s
我也是从这里才知道我是10.14的。0 T  S& i( H$ m6 ]2 Z

- N" o) c; S8 `- j8 b5 M所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。
0 M5 J6 S( p# l
4 s# p8 {+ L& w) d3 d" m) `我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!
/ ^5 g( u2 j2 i$ |8 M* _. X1 L$ Y; d- ]  b! W! o. U* k$ w
如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:% e* h7 e: a0 r1 V1 S4 P
( t2 d7 b! A: C  W% P" K
链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d9
: \$ p* g, B# S, N  {% z/ W
) x4 \7 ~) ^$ t0 r对了,还有可能会改了后会提示你:
: z7 B$ A8 x% S+ ~
* z- f8 X1 @* |5 L 3 K4 A2 C6 M% l6 @5 q8 X
/ g, h$ p, M4 p) p! @6 ~. o
这是因为你还没给xcode开权限。9 {# p; Z9 y. k+ E2 H0 T/ y9 ^

! ^" k+ I% x% o7 a/ V4 K* T# o解决方法是:打开终端,输入:: s- z( I6 q/ @; c
2 j/ y  h, P- U! f, T
sudo xcode-select -switch /Applications/Xcode.app- J+ c7 X* q; l& [3 I
4 K" O2 v3 u) p$ j
然后输入一下电脑密码。OK!
$ i% u4 {8 @7 b% s
7 C  s! h" _! u) {4 B除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。/ h: h2 `. p( d

, L4 H% a9 f7 B重启MATLAB,再试一下咯!
+ ]- v( G/ ^0 P% A- q* s! ?& `) U! M% D4 t
按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。
# u. M) y; B. f* R' Y$ V4 [! A6 ?' U; c' f  n2 I$ ?9 M
Good luck!1 U: A, B( r0 L0 c4 D0 `) d

! R# A, X2 @4 z0 `4 L  C
5 S3 A9 {) }. c$ P8 n$ K8 L9 L  q; ^6 V4 a5 m( y  _

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-7 07:46 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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