• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Matlab2016及以上版本设置VS编译器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

源地址:https://blog.csdn.net/cztqwan/article/details/78902530

Matlab2016及以上版本设置VS编译器

在Matlab中使用mex可以编译c/c++ ,但是首先要设置好编译器,可以使用mex -setup命令来设置。如果电脑上是先安装的Visual Studio,然后安装MATLAB,那么一般情况下,只需要在命令行输入mex -setup按照提示选择即可完成编译器的设置。

但是,假如是先安装的matlab后安装的Visual Studio,或者其它一些原因,很可能mex -setup命令无法找到安装好的Visual Studio编译器,那么就需要进行一些修改才能成功设置编译器了。

由于Matlab从2016版本以后使用xml文件来保存配置文件,所以如果使用的Matlab是2016以前的版本,方法可能和本文有所区别。(本文以Matlab2016a和Visual Studio2012为例)

在Matlab的安装目录\bin\win64\mexopts目录中有各种编译器的配置文件,Matlab就是依靠这些xml文件和编译器建立关联:


对应编译器的xml文件会到windows系统的注册表中读取编译器和SDK的路径信息,之所以mex -setup命令无法找到编译器就是因为注册表中缺少编译器和SDK的路径信息。

对于Matlab2016以前的版本,在\bin\win64\mexopts和mbuildopts目录下是一些stp和bat文件,这些文件中也保存着SDK和不同版本编译器的路径信息。

为了清楚Matlab2016搜索编译器和SDK的过程,使用mex -setup -v命令可以看到搜索过程(下图是已经修改好注册表后的搜索过程):


以Visual studio2012为例,Matlab主要从注册表中读取SDK和Visual studio2012的安装路径,出现否代表注册表或环境变量中没有相应的信息或者信息错误。可以根据具体情况修改注册表和环境变量。主要包括以下的路径信息:
  • Microsoft\VisualStudio\SxS\VS7:Visual studio的安装路径
  • Microsoft\VisualStudio\SxS\VC7:Visual studio的安装路径下的VC目录
  • Microsoft\Microsoft SDKs\Windows\v8.0:Microsoft SDKs的v8.0 目录
  • VS110COMNTOOLS:Visual studio的安装路径下的Common7\Tools\目录
其中,VS110COMNTOOLS是环境变量,可以在:我的电脑-->属性-->高级系统设置-->环境变量-->系统变量中修改或添加:


Win+R打开运行窗口,输入regedit命令打开注册表编辑器:


在注册表编辑器中,HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE分别对应Matlab中的HKCU和HKLM:


然后在对应目录下添加项(子目录)和字符串值(用于保存路径),例如在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\下新建“v8.0”项,然后在该项中新建字符串值,根据Matlab搜索过程中的提示命名为“InstallationFolder”,并填入数值数据,Microsoft SDKs一般位于C:\Program Files (x86)\Windows Kits\下。



依次把搜索过程中出现否的地方修正,如果环境变量设置后不起作用,需要重启电脑,然后进行mex -setup即可完成编译器的设置。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi向TEdgeBrowser组件中写入Cookie的方法发布时间:2022-07-18
下一篇:
笔画宽度变化(C++和matlab算法)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap