完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题

  • Post author:
  • Post category:其他


完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题



1.需求和遇到的问题

需要在matlab中使用或者调用opencv函数,在网上找了一大圈,大致由两种解决方法:


  1. 编译mexw64文件

    :将c或者c++的程序按照符合matlab接口的规则进行编写,然后用mex进行编译。这种方法对于需要引用库的函数也适用,但是看上去挺复杂的。

  2. 编译mexopencv

    : 编译matlab版本的opencv即可在matlab中调用opencv的函数了。

但是这两种方法的前提都是能够正常启用“ mex -setup”。

 mex -setup

于是本人遇到了这个问题:

错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64

编译器。有关更多选项,请访问http://www.mathworks.com/support/compilers/R2016a/win64.html。


关于这个问题,网上也有很多解决方案。但是如果自己电脑上已经有编译器了(比如装了vs2017),不建议重新装编译器,更不建议将matlab卸载了重新安装。


因为有更简单且治标又治本的方法



2. 问题解决方法

打开matlab安装路径下的mexopts文件夹

F:\matlab2016\bin\win64\mexopts

里面有各种需要各种编译器的配置文件

在这里插入图片描述

找到自己编译器的相应版本!如果没有自己编译器的版本,可以去网上找了下载到这个目录下。网上找到一个大佬分享的vs2017的配置文件,

链接

.

在matlab命令窗口输入命令:

mex -setup -v

在这里插入图片描述

查看这个输出里面的SDK版本号自己电脑里面的是否一致,不一致的话进入.xml配置文件中改为自己电脑里面的SDK版本。

在这里插入图片描述

因为按照编译器的时候注册表里面就会有记录,所以一般不需要在注册表里面做任何更改!

这样下来就可以使用mex了。



参考

[1]

解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题

.



版权声明:本文为rookieWhoCanProduce原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。