无法使用Xcode版本4.3.2在Mac OS X Lion 10.7.5上运行Matlab Mex文件

时间:2013-12-01 05:32:17

标签: c++ xcode macos matlab

当我尝试在matlab上运行c ++代码时,我使用以下命令:

mex'-setup' (然后我选择以下两个选项:   1:/Applications/MATLAB_R2011a_Student.app/bin/gccopts.sh:       用于构建gcc MEX文件的模板选项文件

和   2:/Applications/MATLAB_R2011a_Student.app/bin/mexopts.sh:       用于通过系统ANSI编译器构建MEX文件的模板选项文件

当我选择其中一个并通过编写以下内容选择一个mex文件:mex mextest1p0.cpp时,我收到以下错误消息:

/Applications/MATLAB_R2011a_Student.app/bin/mex:line 1041:g ++ - 4.2:找不到命令

我该如何解决这个问题。注意:我看过几篇关于这个问题的帖子,我尝试了各种解决方案,但没有任何工作

2 个答案:

答案 0 :(得分:0)

您需要安装编译器 - 即G ++(GNU C ++编译器)。在OS X上,最简单的方法是安装XCode命令行开发人员工具 - 打开XCode,转到首选项,选择下载,然后安装命令行工具。如果Matlab仍然无法找到G ++,那么您就会遇到路径问题(并告诉我们) - 解决方案可能就在您的gccopts脚本中。

答案 1 :(得分:0)

如果你不愿意,你实际上并不需要安装所有Xcode,我相信。它占用了大量的硬盘空间。您需要(1) Apple开发者帐户(学生免费)。然后,您可以(2)转到downloads page at developer.apple.com并获取适用于您的OS X版本的命令行工具下载(10.7的最后一个版本是2013年3月 - 它位于目前下载的第三页)。为此运行安装程序。

然后,您需要(3)编辑您的mexopts.sh文件。如果你有Xcode,你需要这样做。在Matlab命令窗口中键入以下内容:

edit([matlabroot '/bin/mexopts.sh'])

制作打开的文件的副本,以防您搞砸了。您需要根据系统和命令行工具中包含的编译器编辑文件(您可以尝试通过在Terminal.app中运行cc -vc++ -v或类似版本来获取版本。查找与OS X相关的部分。您需要设置以下项目(这些是来自Matlab R2012b并且稍微有所改变,但我猜你使用的是旧版本):

CC='llvm-gcc-4.2'

或者只是

CC='gcc-4.2'

SDKROOT='/'
MACOSX_DEPLOYMENT_TARGET='10.7'

如果您使用的是Xcode,SDKROOT应该是'/Developer/SDKs/MacOSX10.7.sdk'。对于下面的C ++部分,您可能需要

CXX='llvm-g++-4.2'

CXX='g++-4.2'

(4)最后,保存已编辑的mexopts.sh文件并在Matlab命令窗口中运行以下命令:

mex -setup

选择您的文件(可能按1)并选择是([y])。您现在应该可以使用mex函数进行编译。