我有64位Mac,OS X 10.8.5,我安装了xcode。我也可以从命令行验证gcc的工作原理。当我输入mex -setup时,我得到了
The options files available for mex are:
1: /Applications/MATLAB_R2013a.app/bin/mexopts.sh :
Template Options file for building MEX-files
0: Exit with no changes
这无益。当我输入make时,所有相关的libsvm文件都在我选择的文件夹中,我得到了
make
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 ' "libsvmread.c"' failed.
如果make.m失败,请查看README详细说明。
有人能帮助我吗?
答案 0 :(得分:0)
最快的方法是使用您喜欢的文本编辑器直接编辑mexopts.sh文件(您可能需要使用"管理员权限")。文件:
/Applications/MATLAB_R2013a.app/bin/mexopts.sh
定义了一系列用于在系统上调用C / C ++编译器的路径和标志。它往往无法跟上MacOS的修订。
在我的系统上,我必须进行以下更改:
第258-260行
CC='gcc'
SDKROOT='/Developer/SDKs/MacOSX10.6.sdk'
MACOSX_DEPLOYMENT_TARGET='10.6'
第273行
CXX=g++
会有很多引用" CC ="在文件中;你正在寻找行之后的那些
maci64)
但是系统的正确值取决于您拥有的gcc / g ++以及它们的安装位置。如您所见,我在/ Develop下安装了MacOS 10.6 Developer工具。您需要安装开发人员工具(XCode) - 请参阅 How to use/install gcc on Mac OS X 10.8 / Xcode 4.4
在更新版本的XCode工具中,路径可能看起来更像:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
但是使用更新版本的XCode编译MEX代码可能会导致其他问题 - 我遇到了char16_t的问题,请参阅: MEX compile error: unknown type name 'char16_t'