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

EDA365欢迎您登录!

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

x

在MATLAB的官网上可以看到,R2018b已经支持使用xcode10.+ 进行混合编译。于是卸载,重装了matlabR2018b,还是这个问题。。

( m2 e. K* i. c( o7 O- y5 C8 N" I  a" y

尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。" B1 s0 O. A, U

* I; s' f+ W) }' O3 c) `, w2 S( L6 V

下面的办法,是亲测可行的:- K1 P% |! B2 Q6 t

7 p9 f' b% d* j  X1 [# ]

首先,你要安装xcode。打开app store安装即可。现在应该很少人还用旧的了吧,一般都8+ 9+ 10+的版本,自带command line工具的。" C; U# L; h8 O- V, b

2 E* }& U1 b$ m+ R* P/ f- T$ v0 J出现这个找不到编译器的原因,是因为MATLAB找不到xcode来辅助编译。我们需要给它设置相应的路径,并且赋予权限。

0 ]: g% x1 @2 t  N& n) {* f$ k

) o7 Z8 o7 U- m7 \" ]! W$ x: i7 A在MATLAB输入:# v- z5 i$ Y" z

1 T1 t2 f* S: a

edit ([matlabroot '/bin/maci64/mexopts/maci64.xml'])0 D  y: X: M1 A* I  c$ D

6 E6 {) |3 c* k; K- X) s  V$ B打开这个xml文件,然后更改4句话:(主要改这些地方,xml文件上面的有其他路径,别乱改)

& t. |' D2 w" K% J- ]' p2 Q

2 y, i/ l- k: N0 Y% v6 S

none.gif

5.png (149.22 KB, 下载次数: 0)

2020-5-28 14:30 上传

) l& X2 l8 E) X8 {% l' T

; A& t: Z  P! a这4句话中的MacOSX后面的数字,是根据你的版本来的。准确的说,是你的xcode提供的SDK。( T) [4 e- Z7 h8 c. O

9 v% m/ h$ H4 V3 m# Z

打开finder,按住shift+command+G,进入:

2 @7 I4 M/ c' _7 V; [/ m0 L4 J+ h' N0 L  W8 r9 z: b

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" u9 v+ u0 r5 _! t& \

r2 T/ |- l+ X, h( k% O* y1 r! ?

然后你就可以看到你当前xcode提供的开发sdk版本号了:: B. a6 ?. Y; e- U/ K% O" K7 `. |

% X- w( Q+ [* r" Z4 V% Z

none.gif

4.png (46.99 KB, 下载次数: 0)

2020-5-28 14:30 上传

: E) |* v3 A+ }" M# I. X0 \

' a, l; t8 A5 b) {  S2 Y4 N- p: k( ~

我也是从这里才知道我是10.14的。! j+ S8 N9 r& p6 S2 Y- g

6 M9 U$ U! X6 R+ e* Y所以,上述xml中,只要你写对了一个路径,(有好几句话一样的)就可以了。or语句是为了匹配不同的macOS版本的。

6 @6 [* Z' N; c

5 @5 U5 ^5 m% P5 f我之前用macOSX10.10时候都没出错,升级到macOS mojave后就无法使用mex -setup,估计原因就是这个xml文件里面缺少10.14的选项!

4 Z% e% Z$ \" k3 |  E

+ U5 {7 {: Q# r6 R% _# x如果你的xml和我长得不一样,或者改乱掉了,可以先复原一下:' P- u. E5 I$ |* _4 ~$ h/ a

( y; Y( b5 q4 Y8 h链接:https://pan.baidu.com/s/1nZXLf-FDogeNpHCkhWF0mg  密码:x0d92 d* }4 S7 k2 F2 i& ?/ _9 u% M: E5 }

# P+ u9 B' v' L6 d对了,还有可能会改了后会提示你:7 U. c5 @% a1 ]5 b

: w3 {" Y  a* v0 g

none.gif

3.png (30.13 KB, 下载次数: 0)

2020-5-28 14:30 上传

( i; L4 Y% V; o( {+ R

. c: v& x4 a2 O

这是因为你还没给xcode开权限。

+ O/ z1 F# I5 [+ a/ R

5 l1 U1 `( u9 q" n8 c解决方法是:打开终端,输入:

$ x. O/ R2 D( ?' i4 }* L, q) u- a" e# M1 ^# x" q

sudo xcode-select -switch /Applications/Xcode.app

5 i2 |$ C3 \6 p" T! Q4 l

' I  L1 h: k/ d' j* M  G% ~然后输入一下电脑密码。OK!

& c4 z- [% G( }. W4 E# q7 Q3 S( _7 v' Z4 M2 F- W

除了上述的xml,还有另一个:clang++_maci64.xml,一样的方法,打开,并修改相应位置。

+ X$ g7 l" W7 _' \; ]5 g. C) E# ?" a  [) }0 M

重启MATLAB,再试一下咯!7 n: n0 |9 Q6 E8 I+ k

% f0 G0 Y  j2 Q5 i0 @. w! N

按照上面步骤操作后,matlab就可以使用混合编译啦!这对使用第三方库,比如著名的libsvm而言,是非常重要的前提步骤。

4 A: Y( F+ i0 y4 }3 A4 ?, [5 h) _/ f1 l. J1 M, J0 g

Good luck!

2 [2 O+ R; ~3 }) `  J. o" x3 d3 h9 f+ E4 w1 R- T

x% D# {, m: i+ m2 s  K% s& Y1 v0 Z7 f# [: R& B# l0 ?: L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值