1. 程式人生 > >在MATLAB2017a中使用mex找不到編譯器的問題

在MATLAB2017a中使用mex找不到編譯器的問題

安裝環境:win7系統,MATLAB2017a

由於原始碼是在Linux上實現的MATLAB和C++混編,所以在MATLAB中使用make函式,總是提示“找不到編譯器,請安裝MinGW-w64編譯器”,於是為MATLAB安裝MinGW-w64編譯器,在安裝時使用的是軟體百度網盤連結:點選開啟連結 密碼:jexj,在安裝時請直接安裝在c盤目錄下如果放在c:\Program Files等二級目錄下在後邊的執行過程中會報錯,提示“c:\Program Files不是可執行程式碼”。安裝完成後

1.新增環境變數:變數名:MW_MINGW64_LOC,值:編譯器的安裝路徑

2.安裝Gnumex,百度網盤連結:

點選開啟連結 密碼:qo8h,安裝完成後在MATLAB中點選新增路徑,新增Gnumex的安裝路徑。

3.將MATLAB的執行路徑改為Gnumex的安裝路徑,在MATLAB的命令視窗輸入命令:gnumex,之後會彈出一個視窗,如下:


將MinGW root directory設定為MinGW-w64編譯器的安裝路徑,path to gfortran的路徑也設定為編譯器安裝路徑,path to gnumex處的路徑為gnumex的安裝路徑,之後點選make options file按鈕。如果MinGW root directory的安裝路徑如上圖含有C:\Program Files,會報錯。所以安裝編譯器時一定注意安裝路徑。

4.最後在執行自己的make函式(裡面含有mex -outdir bin/ -v CXXOPTIMFLAGS='$CXXOPTIMFLAGS -Ofast -fopenmp' LDOPTIMFLAGS='$LDOPTIMFLAGS -fopenmp' sources/c/PsycoSuperRes_interface_mex.cpp sources/c/PsycoSuperRes.cpp sources/c/Psyco.cpp命令)就不會報錯了。

在安裝過程中安裝了各種Windows Microsoft SDK 7.1但是並不能解決找不到編譯器的問題,之後又安裝了TDM-GCC-64,可以找到編譯器,但是在執行自己的Make函式時,總是報“ error: libgomp.spec: No such file or directory

”的錯誤,查閱了各種資料,只看到在Linux下的一些錯誤說明,但是在Windows下貌似大家都沒有這種錯誤,可能是我不理解tdm gcc和MinGW -w64兩種編譯器的區別吧,不過最後終於實現了曲線救國,重新安裝了mingw-w64編譯器,最後執行make函式通過。在此記錄一下自己遇到的錯誤,有不當之處請大家指正。