我有 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了解详细说明。
有人可以帮我吗?
最快的方法是使用您最喜欢的文本编辑器直接编辑 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) - 请参阅 如何在 Mac OS X 10.8 / Xcode 4.4 上使用/安装 gcc
在最新版本的 XCode 工具中,路径可能看起来更像:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
但是使用更新版本的 XCode 编译 MEX 代码可能会导致其他问题 - 我遇到了 char16_t 的问题,请参阅: MEX 编译错误:未知类型名称“char16_t”