在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
源地址: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的安装路径,出现否代表注册表或环境变量中没有相应的信息或者信息错误。可以根据具体情况修改注册表和环境变量。主要包括以下的路径信息:
其中,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即可完成编译器的设置。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论