繁体   English   中英

MATLAB MEX找不到带有XCode 4.3(Mac)的标准库

[英]MATLAB MEX can't find standard library with XCode 4.3 (Mac)

我开始在我的Mac上运行从C代码(使用XCode 4.3)编译的MATLAB(R2012a)的MEX文件(运行OSX 10.7.3,Lion)。 我已经安装了MATLAB提供的XCode补丁 ,它配置MATLAB以在XCode 4.2+下使用新的llvm-gcc编译器,但是我仍然在尝试使用mex timestwo.c编译示例文件时出现以下错误:

/Applications/MATLAB_R2012a.app/extern/include/matrix.h:852:20: error: stdlib.h: No such file or directory
In file included from timestwo.c:1:
/Applications/MATLAB_R2012a.app/extern/include/mex.h:161:19: error: stdio.h: No such file or directory

编译然后打破

mex: compile of ' "timestwo.c"' failed.

Error using mex (line 206)
Unable to complete successfully.

显然,编译器找不到标准库头文件目录,但是需要更改才能成功编译?

啊,找到了!

MATLAB提供的模板使用/ Developer / ...作为SDK位置,但是在XCode4.3下更改为在XCode.app下生效。 为了解决问题,我必须编辑~/.matlab/R2012a/mexopts.sh文件以将SDKROOT目录设置为新位置。

为此,请在mexopts.sh文件中搜索SDKROOT并将其更改为:

SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/'

注意,我选择了我在Lion上的10.7 sdk b / c。 如果你在Snow Leopard上,请使用10.6

我正在运行Mac Mountain Lion和Matlab R2012b,以下解决方案适合我: Matlab 2012a Mex与Mountain Lion上的Xcode 4.5一起使用

确切地说,我遇到了以下错误:

error: stdio.h: No such file or directory

error: stdlib.h: No such file or directory

error: math.h: No such file or directory

那么我做了什么来解决这个问题:

我使用命令行工具安装了Xcode,然后通过以下方式编辑了文件“/Applications/MATLAB_R2012b.app/bin/mexopts.sh”:

将CC从gcc-4.2更改为llvm-gcc-4.2

将CXX从gcc-4.2更改为llvm-g ++ - 4.2

将SDKROOT设置为'/'

然后我在MATLAB中运行“mex -setup”,选择数字1,然后选择y来覆盖旧的/Users/insertyournamehere/.matlab/R2012b/mexopts.sh

这解决了:)

您可以在此处找到有价值的信息: http//www.mathworks.fr/support/solutions/en/data/1-FR6LXJ/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM