Matlab错误:关于'compile_mex;'命令

时间:2013-11-29 22:26:53

标签: matlab shell ssh compilation mex

对所有人来说,

我正在尝试通过Matlab使用'mex'命令运行makefile。然而, 当我尝试使用'compile_mex;'运行我的测试.m脚本时,我收到以下错误:

>> compile_mex
xcodebuild: error: SDK "macosx10.7" cannot be located.
xcrun: error: unable to find utility "clang++", not a developer tool or in PATH

mex: compile of ' "mex/perform_nlmeans_mex.cpp"' failed.

我已经阅读了一些可能需要编写shell脚本的消息来源 通过我需要导入的库物理添加clang ++实用程序 Matlab直接。有谁知道如何修复/执行此操作?示例或示例shell 关于如何在协调中使用该脚本的脚本和说明 如果有人能提供给我,那么Matlab会很棒。谢谢!

1 个答案:

答案 0 :(得分:1)

临时解决方法here。实际上,这相当于让MATLAB使用不同的SDK(因为Mavericks中删除了10.7 SDK)。从链接:

为了清楚,如果其他人遇到同样的问题,我 更改了mexopts.sh中的四行:

#            CC='xcrun  -sdk macosx10.7  clang'
        CC='xcrun  -sdk macosx10.8  clang' 

#            MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.7.sdk"
        MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.8.sdk" 

#            MACOSX_DEPLOYMENT_TARGET='10.7'
        MACOSX_DEPLOYMENT_TARGET='10.8' 

#            CXX='xcrun  -sdk macosx10.7  clang++'
        CXX='xcrun  -sdk macosx10.8  clang++'

我还必须做" mex -setup"从matlab里面来复制  mexopts.sh到我的用户目录。

当我做这个更改时,我直接编辑了~/.matlab/R2013a/mexopts.sh而不是.matlab/R2013a/mexopts.sh - 我觉得这更安全了。它还删除了重新运行mex -setup的要求,但这当然意味着可以覆盖该文件。

10.9:

        CC='xcrun  -sdk macosx10.9  clang' 
        MW_SDK_TEMP="find `xcode-select -print-path` -name MacOSX10.9.sdk" 
        MACOSX_DEPLOYMENT_TARGET='10.9' 
        CXX='xcrun  -sdk macosx10.9  clang++'