2012-08-27 102 views
1

我想知道哪個特定的文件是我的微軟編譯器。我需要它來編譯一些Matlab代碼。通過運行mex -setup mex能夠在以下目錄中找到編譯器:d:\Program Files (x86)\Microsoft Visual Studio 10.0但是,當我在那裏瀏覽時,沒有可能是實際編譯器的文件。 我想建立我的應用程序,但它不會工作,看起來像Matlab確實發現了編譯器,但我得到一個錯誤(代碼= 53)An error occurred while shelling out to mbuild 所以我的猜測是,我必須去部署工具設置並添加一些選項,如編譯器目錄(即使我已經將它設置爲mex),但我找不到它在d:\Program Files (x86)\Microsoft Visual Studio 10.0我甚至不知道編譯器的名稱是什麼。 我真的需要這方面的幫助。謝謝!Matlab部署工具,微軟編譯器

回答

1

要使mex -setup正常工作不需要知道實際編譯器的調用方式。當我運行mex -setup我拿到名單如下:

Select a compiler: 
[1] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker) in C:\Program Files (x86)\Intel\ComposerXE-2011 
[2] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker) in C:\Program Files (x86)\Intel\ComposerXE-2011 
[3] Microsoft Visual C++ 2010 in C:\Program Files (x86)\Microsoft Visual Studio 10.0 

[0] None 

,如果我選擇[3]的信息輸出包括線

Trying to update options file: D:\Users\my.name\AppData\Roaming\MathWorks\MATLAB\R2012a\mexopts.bat 
From template:    C:\PROGRA~1\MATLAB\R2012a\bin\win64\mexopts\msvc100opts.bat 

如果你檢查任何這些文件,你會發現的名稱編譯器(它被稱爲cl.exe,並且在Matlab建議它正在查找的目錄下面的目錄中有幾個不同的版本)被分配爲名爲COMPILER的腳本變量的值。您還會發現mex將代碼編譯爲mex文件時所使用的所有設置。您可以從這些信息中診斷您的問題的其餘部分。

如果你不能用這種「幫助」解決你的問題(S),編輯並準確解釋的錯誤信息和

+0

感謝你們給我有用的信息。我終於設法建立了我的申請;我的Matlab版本是2010.a,這是已知與MSVC2010有關的問題。我在http://www.mathworks.com/support/solutions/en/data/1-D5W493/?solution=1-D5W493嘗試了這個補丁,但看起來還不夠,至少在deploytool!構建與Matlab 2011.a成功 – CTZStef