MATLAB无法看到我的C编译器到mex svmlib

时间:2014-06-04 19:03:20

标签: matlab compiler-construction mex

我有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详细说明。

有人能帮助我吗?

1 个答案:

答案 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'