-
Matlab中错误使用mex
2020-07-22 20:53:43文章目录Matlab中错误使用mex问题描述Matlab 2016+ 版本 解决方案下载TDM-gcc安装Matlab 2016之前版本 解决方案mingw-w64安装step 1step 2 Matlab中错误使用mex 问题描述 使用Matlab和Minepy工具箱做变量的互信息MIC...文章目录
Matlab中错误使用mex
问题描述
使用Matlab和Minepy工具箱做变量的互信息MIC (maximal information coefficient ) 分析出现了如下问题!Minepy安装
Matlab 2016+ 版本 解决方案
下载TDM-gcc
tdm64-gcc-9.2.0 tdm64-gcc-5.1.0下载
提取码: 28cj
安装
Matlab 2016之前版本 解决方案
- 到微软下载SDK7.1以及编译器
- 安装SDK
- 安装Compiler
- 见下图
mingw-w64安装
step 1
下载编译器:
code:edc5
step 2
设置系统环境变量:MW_MING64_LOC,位置为安装路径bin目录(eg:D:/Ming64/MinGw64/bin);
设置完环境变量后,Matlab还是找不到MinGw编译器的,需要在Matlab中运行如下代码:
setenv('MW_MINGW64_LOC','folder') 比如:setenv('MW_MINGW64_LOC','D:\Mingw\MinGW64')//目录为bin的上一级目录
完整操作流程
操作顺序就是图的顺序:
-
完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题
2021-03-15 10:45:29完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题1.需求和遇到的问题2. 问题解决方法参考 1.需求和遇到的问题 需要在matlab中使用或者调用opencv函数,在网上找了一大圈,大致由两种解决方法: ...完美解决matlab“错误使用 mex未找到支持的编译器或 SDK。”的问题
1.需求和遇到的问题
需要在matlab中使用或者调用opencv函数,在网上找了一大圈,大致由两种解决方法:
- 编译mexw64文件:将c或者c++的程序按照符合matlab接口的规则进行编写,然后用mex进行编译。这种方法对于需要引用库的函数也适用,但是看上去挺复杂的。
- 编译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了。参考
-
Matlab mex -setup 错误使用mex
2020-07-17 16:45:10路径不匹配导致的原因:安装VS时选择了其他盘如F盘,则导致matlab中按照配置文件搜索C++编辑器失败。 解决方法:修改matlab安装目录下的文件夹 D:\Program Files\MATLAB\R2016a\bin\win64\mexopts\...这里其实是后面出现的问题,写在前面为帮助别人节省时间。装好libsvm花了两天时间。
本人运行环境:
系统:
win10(64bit)matlab:2019a
vs:2019
本人原因:
路径不匹配导致的原因:安装VS时选择了其他盘如F盘,则导致matlab中按照配置文件搜索C++编辑器失败。
注意查看系统变量
解决方法:修改matlab安装目录下的文件夹
首先打开matlab安装目录下的文件夹
D:\matlab2019a\bin\win64\mexopts\compilerComponents
打开msvc90shellopts.stp 文件,把第7行的location修改为visual studio的安装目录:
my $default_location = “F:\Program Files\Microsoft Visual Studio 14.0”;
并且把文件里面27,52行的9.0都修改为14.0。
再次重启matlab,输入mex -setup错误消失,问题得以解决!
这个问题才是根本问题。
-
解决matlab错误使用 mex 未找到支持的编译器或 SDK一系列问题
2020-08-10 21:19:01在matlab(我的版本是2016a),需要编译C++文件,但在命令行中输入mex -setup时,会报错:错误使用 mex未找到支持的编译器或 SDK。通过查看版本支持以及下载支持文件后,解决完编译器的问题。又出现新的错误,无法...在Matlab中使用mex可以编译c/c++ ,但是首先要设置好编译器,可以使用mex -setup命令来设置。但在命令行中输入mex -setup时,报错:(错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译
器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2016a/win64.html。)按照提示的可以下载MinGW-w64 C/C++,下载后进行安装。但是若是我们已经安装了VS,则可以用下面的方法。
由于Matlab从2016版本以后使用xml文件来保存配置文件,所以如果使用的Matlab是2016以前的版本,方法可能和本文有所区别。(本文以Matlab2016a和Visual Studio2017为例)我已经安装了VS2017版本,但是我是先安装的matlab后安装的Visual Studio,或者其它一些原因,mex -setup命令无法找到安装好的Visual Studio编译器,仍然报同样的错误,那么就需要进行一些修改才能成功设置编译器了。
在Matlab的安装目录\bin\win64\mexopts(比如我的:E:\Matlab2016a\bin\win64\mexopts)目录中有各种编译器的配置文件,Matlab就是依靠这些xml文件和编译器建立关联,打开文件,查看你的matlab支持的VS版本是否包含你安装的VS版本。你的错误可能是matlab 根本就找不到VS,原因就是matlab根本就不支持VS20xx(比如matlab2016a支持的最高版本就到2015,如下图,红框的部分是我在网上下载的支持文件。)
下载mexopts补丁文件 : https://kaba.hilvi.org/homepage/blog/blog.htm
选择对应版本
下载后解压放在目录中(Matlab的安装目录\bin\win64\mexopts),运行mex -setup,配置你的VS编译器。
一般来说到这里就解决了。感谢博客(https://blog.csdn.net/qq_17783559/article/details/82017379?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf)但是我的问题有点复杂,因为这时,又报错:e:\matlab2016a\extern\include\matrix.h(23): fatal error C1083: 无法打开包括文件: “stdlib.h”: No such file or directory
我的内心是崩溃的,然后各种查问题,尝试解决。最后得出的结论就是SDK的版本问题。打开Visual Studio Installer,查看VS使用的SDK,就是红框框的圈住的。然而matlab安装目录\bin\win64\mexopts目录下的msvcpp2017.xml使用的WinKit居然写死了include的引用路径为$KITSROOT\include\10.0.16299.0\ucrt,但这个不存在的路径在使用mex -setup设置期间是不报错的,导致在实际的编译过程中,出现找不到“stdlib.h”的错误。
要修复以上的错误,需要两个步骤:- 修改 bin\win64\mexopts目录下的msvc2017.xml,将其中10.0.16299.0替换成有效的10.0.17763.0(这里是我的配置,你要看自己对应的版本)
- Matlab2016a在第一次使用mex -setup设置成功(虽然实际是存在错误的)后,会将mex编译器配置保存到C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2017a下的mex_C_win64.xml中,因此只做第一步是无效的,需要将该xml文件也修改了。
然后,就大功告成啦,终于解决了,希望也能帮助到你们。
提示:c++编译器若存在通用问题也是按照以上方法修改。
-
matlab2014a错误使用 mex 未找到支持的编译器或 SDK
2018-12-13 12:32:24在matlab命令行中输入命令 mex -setup -v开启详细模式,能够看到...问题:mex .c文件时,2016b能够找到VS2015并使用mex命令成功编译。但2014a均找不到。 目的:发现2014a整个查找过程中只找2013及以下版本的VS... -
在Matlab中使用mex编译使用 c/c++
2017-02-26 20:20:51在Matlab中使用mex编译使用 c/c++ ,首先要设置编译器,mex -setup. 但是有时候会遇到找不到编译器的错误,错误原因有很多。我的电脑上先安装Matlab 2016a,后安装的visual studio 2013,所以Matlab找不到... -
“Matlab R2016a中运行‘mex -setup’,错误使用 mex 未找到支持的编译器或 SDK”的解决办法
2020-10-15 10:39:04目录问题描述:原因分析:解决方案:1.失败经验2.成功方法(1)下载MinGW-w64编译器(2)安装MinGW-w64 C/C++ 编译器(3)设置为系统环境变量(4)使用MATLAB将MW_MINGW64设置为...错误使用 mex 未找到支持的编译器或 S -
错误使用 mex gcc: error: \-fexceptions: No such file or directory 在matlab中使用MinGW编译报错
2020-04-11 15:18:48错误使用 mex gcc: error: \-fexceptions: No such file or directory 出错 ir_mex_build_mri (line 20) mex -O CFLAGS="\$CFLAGS -std=c99" exp_xform_mex.c 出错 ir_mex_build (line 15) ir_mex_build_mri 解决... -
关于HCF的matlab代码编译过程中遇到的错误使用 mex MEX 找不到使用 -l 选项指定的库 ‘mwblas‘。
2021-03-10 09:15:40错误使用 mex MEX 找不到使用 -l 选项指定的库 ‘mwblas’。 MEX 已搜索具有以下名称之一的文件: libmwblas.a mwblas.lib libmwblas.lib 请验证库名称是否正确。如果该库不在 现有路径上,请使用 -L 选项指定路径。 ... -
mex -setup命令 错误使用 mex问题【MATLAB 安装MinGW-w64编译器】
2019-08-06 16:56:29显示错误使用mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器 2、软件下载: MinGW-w64下载 https://sourceforge.net/projects/mingw-w64/ TDM-GCC ... -
为什么安装了MinGW之后,还是不能在Matlab中使用mex?
2019-07-21 17:45:00老版本的Matlab自带lcc,在Matlab中输入mex -setup就可以选择、设置。如果电脑中还安装了VC之类的其它C编译器,Matlab也会列出,供你选择哪个编译器。但高版本的Matlab用起来没这么简单。我用2015b,输入mex -setup... -
MATLAB中的mex编译错误处理办法及Ubuntu中GCC的安装问题
2020-09-26 14:32:25一、MATLAB中使用mex报错及GCC的安装多种问题的解决。 当我运行我的程序的时候,发现下图中的“model” have not defne。(未定义) 查阅若干资料,走了不少弯路,才发现原来是mex文件未编译。 接下来,编译mex文件... -
在Matlab中使用mex函数进行C/C++混合编程
2011-04-01 22:19:00在Matlab使用mex命令编译源文件时,要注意这样一个现象:源文件名后缀为.c时,所有变量声明必须一次性完成,且放在最前面, 否则mex编译错误;而源文件名后缀为.cpp时,就没有上面的问题,...- -||。 -
macOS+MatlabR2018b解决“错误使用mex -setup”问题(配置xcode10)
2018-11-05 21:08:34尝试在MATLAB中输入mex -setup,仍然会报错找不到支持的编译器。搜索了网上很多文章都不行。我的系统是最新的macOS mojave,也就是macOSX10.14,知道这一点很重要。 下面的办法,是亲测可行的: 首先,你要安装xc.... -
解决在matlab中输入mex -setup出现错误等问题
2019-04-12 10:41:35问题出现的开始,是我将Libsvm工具包添加到Matlab中的tools文件中后,为了使用SVM进行数据分类,运行到svmtrain函数时出现的问题,matlab会报错: Invalid MEX ‘F:…\toolbox\mex\mexw64\svmtrain.mexw64’ 即:找... -
mex -setup 错误使用 mex 未找到支持的编译器或 SDK。
2019-06-14 09:55:46使用MATLAB编译程序,出现如下问题: mex -setup 错误使用 mex未找到支持的编译器或 SDK。...本机装了matlab2014和2017,2017可以编译,但2014中出现错误使用mex问题,如下图所示 后经参考如下博客 https://ww2.mat... -
错误使用 mex 未找到支持的编译器或SDK
2020-08-29 18:33:16Matlab选择编译器时报错:错误使用 mex 未找到支持的编译器或SDK 解决方案: 在matlab命令行中输入命令 mex -setup -v开启详细模式,能够看到查找过程以发现和解决问题。 从命令行窗口发现问题在于未找到cl.exe文件... -
解决MATLAB对VS高版本出现“错误使用 mex未找到支持的编译器或 SDK。”的问题
2020-06-05 19:58:02需要用MATLAB来编译一些C代码,但是总是无法找到编译器,网上很多教程并没有什么用,经过摸索终于成功,现...1. MATALB中运行mex -setup 出现问题,未找到编译器,让我安装MinGW-w64,我已经安装了VS,干嘛还要.. -
matlab simulink写s-function函数时搭建c运行环境,提示错误使用mex,需要安装mingw64-w
2019-08-06 20:23:12matlab中给的解决方案并不够特别清楚,我自己下载了mingw64-w的好几个版本都试了下,发现并不能用(我的电脑安装的64位的Matlab2017),最后是在csdn的库里面找到的TDM GCC4.9.2,安装好后配置环境,在matlab中输入... -
Matlab使用mex -setup提示未找到支持的编译器或 SDK 解决方案笔记~
2019-02-21 14:32:43错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2016a/w... -
彻底解决Matlab中mex-setup未找到支持的编译器或SDK
2018-08-08 20:56:51错误使用 mex 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++编译器;请参阅安装 MinGW-w64 编译器。如需更多选项,请参阅、、、、、、、、、、、 解决方法很简单,... -
matlab mex使用错误:undefined reference to `filter()‘collect2.exe: error: ld returned 1 exit status
2020-08-28 11:40:31使用mex,在matlab中编辑文件,提示mex错误使用,代码查找没有问题,头文件也include进来。 问题描述: 错误使用 mex C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin... -
matlab 與 mex
2012-09-23 15:27:043.4 Matlab中mxArray类型的操作51 3.5 Matlab与C语言混合编程常用的数据类型51 3.5.1 size_t类型51 3.5.2 Matlab C语言接口数据类型52 3.6 操作Matlab阵列mxArray的mx函数54 3.7 Matlab mex函数77 3.8 Matlab... -
错误使用 mex 未找到支持的编译器。您可以安装免费提供的 MinGW-w64 C/C++ 编译器
2020-09-30 20:56:36在Matlab中使用mex -setup时提示 未找到支持的编译器或SDK,Matlab推荐使用mingw64,那就安装吧。 编译器我下的是TDM-GCC 地址:http://tdm-gcc.tdragon.net/download 下载TDM-GCC(注意看清是32位还是64位),TDM-... -
matlab R2017a mex 配置过程
2018-05-08 11:17:291. 首先,下载libsvm-3.22,很好找,网上都有,解压,复制到matlab安装路径中toolbox文件夹内 。...mex -setup错误使用 mex 未找到支持的编译器或 SDK。有关选项,请访问 http://www.mathworks.com/su... -
matlab调用c,mex的 mexw64 不是有效的 Win32 应用程序
2016-09-25 19:11:00使用OpenCV库,进行混合编程时mex.c文件能够编译成功,并且生出mexw64文件: 但是在调用编程成功的函数时,提示下面的错误: 解决方法: 将系统环境变量中的OpenCV bin目录进行如下的修改。 将x86修改为x64...