【问题标题】:Cannot run Matlab Mex files on Mac OS X Lion 10.7.5 with Xcode Version 4.3.2无法在带有 Xcode 版本 4.3.2 的 Mac OS X Lion 10.7.5 上运行 Matlab Mex 文件
【发布时间】:2013-12-07 06:21:26
【问题描述】:

当我尝试在 matlab 上运行 c++ 代码时,我使用以下命令:

mex '-setup' (然后我选择以下两个选项: 1:/Applications/MATLAB_R2011a_Student.app/bin/gccopts.sh: 用于构建 gcc MEX 文件的模板选项文件

和 2:/Applications/MATLAB_R2011a_Student.app/bin/mexopts.sh: 用于通过系统 ANSI 编译器构建 MEX 文件的模板选项文件

当我选择其中一个并通过编写以下内容选择 mex 文件时:mex mextest1p0.cpp,我收到以下错误消息:

/Applications/MATLAB_R2011a_Student.app/bin/mex:第 1041 行:g++-4.2:找不到命令

我该如何解决这个问题。注意:我看过一些关于这个问题的帖子,我尝试了各种解决方案,但没有任何效果

【问题讨论】:

    标签: c++ xcode macos matlab


    【解决方案1】:

    您需要安装一个编译器——即 G++(GNU C++ 编译器)。在 OS X 上,最简单的方法是安装 XCode 命令行开发工具——打开 XCode,转到首选项,选择下载,然后安装命令行工具。如果 Matlab 仍然找不到 G++,则说明您遇到了路径问题(并告诉我们)——解决方案可能在您的 gccopts 脚本中。

    【讨论】:

      【解决方案2】:

      我相信,如果您不想安装所有 Xcode,您实际上并不需要安装。它占用了大量的硬盘空间。您需要(1)一个 Apple 开发者帐户(学生免费)。然后,您可以(2) 转到downloads page at developer.apple.com 并为您的 OS X 版本下载命令行工具(10.7 的最后一次是在 2013 年 3 月 - 它在第三页目前的下载量)。为此运行安装程序。

      然后您需要(3)编辑您的mexopts.sh 文件。无论您是否有 Xcode,都需要这样做。在您的 Matlab 命令窗口中键入以下内容:

      edit([matlabroot '/bin/mexopts.sh'])
      

      复制打开的文件以防万一。您需要根据您的系统和命令行工具中包含的编译器来编辑文件(您可以尝试通过在 Terminal.app 中运行 cc -vc++ -v 或类似方法来获取版本)。查找与 OS X 相关的部分。您需要设置以下项目(这些项目来自 Matlab R2012b,此后略有更改,但我猜您使用的是旧版本):

      CC='llvm-gcc-4.2'
      

      或者只是

      CC='gcc-4.2'
      

      SDKROOT='/'
      MACOSX_DEPLOYMENT_TARGET='10.7'
      

      如果您使用的是 Xcode,SDKROOT 可能应该是 '/Developer/SDKs/MacOSX10.7.sdk'。对于下面的 C++ 部分,您可能需要

      CXX='llvm-g++-4.2'
      

      CXX='g++-4.2'
      

      (4) 最后,保存您编辑的mexopts.sh 文件并在Matlab 命令窗口中运行以下命令:

      mex -setup
      

      选择您的文件(可能按 1)并选择是 ([y])。您现在应该可以使用mex 函数进行编译了。

      【讨论】:

        猜你喜欢
        • 2012-12-30
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 2019-02-04
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        相关资源
        最近更新 更多