【详细记录】Visual Studio 2019+matlab2017b mex无法正常使用,找不到已安装的编译器

想使用VS2019+matlab2017b进行联合编程,结果老是找不到VS19的编译器。

问题:

低版本的matlab2017b找不到高版本VS的编译器。

解决思路

增加matlab的配置文件及添加头文件路径,使malab17b支持VS2019

环境介绍

VS2019:
保证有一个C++环境,我只装了桌面开发。
保证有一个C++环境
单个组件里面,建议如下俩个都装上。
在这里插入图片描述
VS19没有装在C盘,安装路径为

D:\ProgramFiles\VisualStudio\VS2019\IDE\Common7\IDE

注意这个不是,桌面图快捷方式右键找到的路径。
如图是右键,打开所在位置找到的路径
在这里插入图片描述
vs的安装路径为上图路径的前俩个目录。
如下图:安装目录有类似,如下文件夹
在这里插入图片描述

matlab版本为17B
在这里插入图片描述

解决步骤

1.下载配置文件

msvc2019.xml,msvcpp2019.xml

失效可以再联系我

方式:某云链接: https://pan.baidu.com/s/19qrC-jriYJQjBbKWwtFsww
提取码: wbua

2.添加配置文件

将上述俩个.xml文件,复制粘贴到 Matlab的安装目录下的\bin\win64\mexopts目录下。
粘贴后如下图
在这里插入图片描述

3.修改注册表

添加了配置文件,还需要修改注册表来告诉matlab找到vs编译器的路径。
win+R,输入regedit,进入注册表编辑
在如下目录下

\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7

新增字符串值
名称为16.0,数值为:VS的安装路径
如图,为我的路径。
在这里插入图片描述
注意:
1.若没有SxS\VS7项目路径,可以自己手动添加即可
2.不要写错了VS的安装路径(不等于启动vs文件的路径)

4.安装及验证

重新打开Matlab17,输入mex -setup -v回车。
出现如下内容,说明成功

找到已安装的编译器 'Microsoft Visual C++ 2019 (C)'。
MEX 配置为使用 'Microsoft Visual C++ 2019 (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
	 包含 2^32-1 个以上元素的 MATLAB 变量。您需要
	 更新代码以利用新的 API。
	 您可以在以下网址找到更多的相关信息:
	 http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中选择一种命令:
 mex -setup C++ 
 mex -setup FORTRAN

则说明配置成功
使用 mex -setup C++就可以成功安装vs19的编译器。

其他注意问题:

环境变量输入的vs的安装地址保证准确。

最后欢迎评论交流,有帮助的话,麻烦点个赞,

  • 15
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
matlab2012b windows版在关联vs2012编译器的时候,以及无法编译dll。 原因就是matlab默认的编译器的目录配置,include目录以及lib目录配置错误造成的。 如果你的vs目录不是默认的,或者windows是32位版本,或者vs版本不是2012,或者你的mt.exe目录不在Windows kits下,那么有可能需要修改附件里面的相关目录的设置(其实就是mbuild配置cl.exe和mt.exe的目录位置,以及mex配置的include和lib的所需目录),mbuild是编译exe的,mex是编译dll的。我的另一个资源仅处理mbuild配置,未处理mex的配置,所以不能成功编译mex。如果你已经下载过我的另一个资源,请替换mexopts目录下的msvc110opts.bat文件的30和31行代码(而不必下载这个资源): set INCLUDE=%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\ATLMFC\INCLUDE;%LINKERDIR%\include\um;%LINKERDIR%\include\shared;%LINKERDIR%\include\WinRT;%INCLUDE% set LIB=%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%LINKERDIR%\lib\win8\um\x64;%MATLAB%\extern\lib\win64;%LIB% 附件里有一个word文件,是我修改的注释信息,如果需要手动修改,可以当做帮助来用. mbuild设置方法: 1 把附件相关的4个文件添加到matlab/bin/win64下面的2个相关目录 2 在matlab 里面运行 mbuild -setup, 然后选 y, 再选择2012的那个项目,再选y 3 mbuild应该成功了,此时可以编译为exe文件。 mex设置方法: 1 在matlab 里面运行 mex -setup, 然后选 y, 再选择2012的那个项目,再选y 2 mbuild应该成功了,此时可以编译为dll文件。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值