2014-10-17 55 views
4

我已經將我的MATLAB升級到了2014b(在OS X 10.10上),並試圖測試一些舊的MEX C/C++代碼。MATLAB不再支持用戶定義的MEX配置?

像往常一樣,我從命令窗口運行mex -setup,我希望有機會覆蓋選項文件「meshopt.sh」。

但現在,似乎MATLAB取得了一定的變化,我不能改變MEX配置,它只是說:

MEX配置爲使用Xcode中鏗鏘的C語言編寫,
。 ..
來選擇不同的語言,選擇一個從以下

mex -setup C++ 
mex -setup FORTRAN 

那麼,是不是真的,舊的方式來修改「mexopts。 sh「不再可行?

+0

一旦你選擇這些設置之一,然後修改文件,你可以隨時檢查你的MATLAB發行版的'mex'目錄中是否有文件....但如果這是嚴重的情況,那麼這是一個哭泣的恥辱。那麼我不會升級到2014b! – rayryeng 2014-10-17 14:30:36

+0

我仍然在R2014a,所以我不能驗證自己,但你可以嘗試調用類似'mex -f my_mexopts.sh ...',其中'my_mexopts.sh'是以前版本的配置文件嗎? – Amro 2014-10-17 14:39:21

+0

@Amro它說「指定了無效的選項文件名」。 – lorniper 2014-10-17 15:04:29

回答

1

看來,下面的命令工作:

mex -setup my_mexopts.sh 
然而

,有一些警告信息,

提供了兼容性

傳統MEX基礎設施;它將在未來版本的MATLAB中被刪除。

除此之外,一切看起來都很好,除了我在編譯時得到一些警告,似乎是由於我當前系統(OS X 10.10)上的編譯器版本(gcc 4.9.1)。

GCC:警告:無法理解kern.osversion '14 .0.0

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文件中,很可能在​​(如修改COMPFLAGSCFLAGS任何變量都有你的編譯器選項)或<env>標籤(例如PATHINCLUDELIB等)
  3. 設置,爲當前配置:

    mex -setup:C:\[YourMATLABAppDataHere]\myCopts.xml C 
    

需要注意的是在Windows的好地方,以保持設定爲%APPDATA%下。對於MATLAB R2014b,這將是類似於C:\Users\[yourname]\AppData\Roaming\MathWorks\MATLAB\R2014b

對C++或FORTRAN配置也一樣。