对所有人来说,
我正在尝试通过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会很棒。谢谢!
答案 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++'