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

时间:2012-03-23 19:59:50

标签: xcode matlab mex xcode4.3

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

/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.

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

3 个答案:

答案 0 :(得分:11)

啊,发现了!

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

答案 1 :(得分:5)

我正在运行Mac Mountain Lion和Matlab R2012b,以下解决方案适用于我:Matlab 2012a Mex to work with Xcode 4.5 on Mountain Lion

准确地说, 我收到了以下错误:

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

解决了它:)

答案 2 :(得分:0)

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