MATLAB不再支持用户定义的MEX配置?

时间:2014-10-17 13:31:27

标签: matlab mex

我已将MATLAB升级到2014b(在OS X 10.10上),并尝试测试一些旧的MEX C / C ++代码。

像往常一样,我从命令窗口运行mex -setup,我希望有机会覆盖选项文件" meshopt.sh"。

但是现在,似乎MATLAB已经做了一些改变,我不允许改变MEX配置,只是说:

  

MEX配置为使用Xcode和Clang进行C语言编译,
  ...
  要选择其他语言,请从以下

中选择一种语言
mex -setup C++
mex -setup FORTRAN

那么,修改旧方法" mexopts.sh"是真的吗?不再可行吗?

2 个答案:

答案 0 :(得分:1)

似乎以下命令有效:

mex -setup my_mexopts.sh
但是,有一些警告信息,

提供旧版MEX基础架构以实现兼容性;它将在未来的MATLAB版本中删除。

除此之外,一切看起来都很好,除了我在编译时得到一些警告似乎是由于我当前系统(OS X 10.10)上的编译器版本(gcc 4.9.1)。

gcc:警告:无法理解kern.osversion' 14.0.0

答案 1 :(得分:1)

当我运行mex -setup C时,我会看到如下信息:

Microsoft Visual C++ 2008 (C)  mex -setup:H:\MATLAB\R2014b\bin\win64\mexopts\msvc2008.xml C
Microsoft Visual C++ 2010 (C)  mex -setup:H:\MATLAB\R2014b\bin\win64\mexopts\msvc2010.xml C
Microsoft Visual C++ 2012 (C)  mex -setup:H:\MATLAB\R2014b\bin\win64\mexopts\msvc2012.xml C

mex部分实际上是您可以单击以选择该配置的链接。所以,制作自己的:

  1. 选择xml作为模板并复制它。 (例如,我将H:\MATLAB\R2014b\bin\win64\mexopts\msvc2012.xml复制到%AppData%\MathWorks\MATLAB\R2014b\mex_C++_win64_custom.xml)。
  2. 在XML文件中进行编辑,可能在<vars> tag中(例如修改COMPFLAGSCFLAGS任何变量包含您的编译器选项)或<env>标记(例如PATHINCLUDELIB等。)
  3. 将其设置为当前配置:

    mex -setup:C:\[YourMATLABAppDataHere]\myCopts.xml C
    
  4. 请注意,Windows中保存设置的好地方是%APPDATA%。对于MATLAB R2014b,这可能类似于C:\Users\[yourname]\AppData\Roaming\MathWorks\MATLAB\R2014b

    对C ++或FORTRAN配置也这样做。