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

问题描述 投票:0回答:1

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

有人可以帮我吗?

matlab mex
1个回答
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) - 请参阅 如何在 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”

© www.soinside.com 2019 - 2024. All rights reserved.