我想知道哪个特定文件是我的Microsoft编译器。我需要它来编译一些Matlab代码。通过运行mex -setup
mex能够在以下目录中找到编译器:d:\Program Files (x86)\Microsoft Visual Studio 10.0
但是当我在那里浏览时,没有可能是实际编译器的文件。
我想构建我的应用程序,但它不起作用,看起来像Matlab确实找到了编译器,但是我得到了一个错误(代码= 53)An error occurred while shelling out to mbuild
所以我的猜测是我必须进入Deployement工具设置并添加一些选项,如编译器目录(即使我已经用mex设置它),但我在d:\Program Files (x86)\Microsoft Visual Studio 10.0
我找不到它甚至知道编译器的名称是什么。
我真的需要帮助。谢谢!
答案 0 :(得分: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文件时使用的所有设置。您可以从此信息中诊断出其余问题。
如果您无法使用此“帮助”解决问题,请对其进行编辑并准确说明错误消息并