VS2019与MATLAB 2019a 混合编程

以下是在VS2019与MATLAB 2019a 混合编程的配置中可能会出现的问题及解决方法。

问题一:mex -setup出问题

在matlab中输入mex -setup会出现未找到SDK的报错,可以输入mex -setup -v 来详细查看缺少什么配件。发现没有编译器Microsoft visual 2019。其实MATLAB 2019b支持VS2019,而2019a本身并不支持VS2019。所以需要下载它的支持包https://download.csdn.net/download/xingchensh/12895103

之后将msvc2019.xml与msvcpp2019.xml放到   \R2019a\bin\win64\mexopts 这个文件夹中。再次输入mex -setup -v ,如果有用就会出现以下信息。

VS2019与MATLAB 2019a 混合编程

如果依旧报错,则可能是没有创建注册表。win+R 输入regedit打开注册表编辑器。

在\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\SxS\VS7中,新建一个字符串值,命名为16.0,数据是vs2019中VC的位置。

在\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7中,新建一个字符串值,命名为16.0,数据是vs2019的位置。

如果没有SxS和VS7文件,新建一个就好。

 

 

VS2019与MATLAB 2019a 混合编程

最后就会编译成功。

VS2019与MATLAB 2019a 混合编程

问题二 matlab计算引擎打开失败

使用engOpen()总是失败,可能是matlab组件没有注册。

在命令窗口中,进入\R2019a\bin路径中,输入matlab/regserver,注册成功后会弹出matlab命令窗口。

如果依旧出问题,说无法注册,没有足够的特权。可以以管理员的身份运行。

VS2019与MATLAB 2019a 混合编程