因为目标追踪领域最著名的比赛VOT(Visual Object Tracking),同时也拥有一个非常重要的数据集和一套比较权威的评价指标,基于的是matlab,因此我又开始用起了matlab(这么看下来貌似matlab要成我本学期用的最多的语言了)。当我download官方的toolkit之后,按着document一路比较顺利地操作了下来,结果突然遇到一个报错,说我没有C和C++编译器。WTF?我用了这么久居然都没发现这个问题…

本以为按照提示就能很快解决,结果这个问题折腾了我一整个晚上。好吧既然被折磨得这么惨那我还是本着逢血泪必写博的原则在这里写一下吧。

不过不得不说,最后成功的时候真的还是挺爽的哈哈!

References:

MinGW

MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。

当初报错的时候,我也是很诧异,因为之前使用CodeBlocks和Visual Studio的时候明明是有的。而这次在matlab中编译C/C++时怎么就找不到了。

因为之前使用CodeBlocks也有找不到的情况,我当时是重装了一遍CodeBlocks解决问题的,因此我上网开了一下有没有类似的方法。按道理来说已经装了VS是可以找到的,但好像也存在即使安装了VS、matlab还是找不到编译器的情况。可以使用mex看一下具体是哪些路径没有匹配上,似乎可以通过修改注册表的方法解决,但我没有尝试。注:matlab调用C/C++的方式主要有两种:利用MEX技术和调用C/C++动态连接库。MEX是Matlab Executable的缩写,它是一种“可在matlab中调用的C(或Fortran)语言衍生程序”。后文中还会用到。

失败的方法

毕竟是花了一个晚上,看了mathworks上网友们的各种solution,试错了许多方法,这里记录两个貌似要成功的方法(其实最后还是失败了),或许会有参考价值。

这里有一个被许多网友强调、要注意的是:下载后的mingw文件(没错它只有15kb看上去好假)要在打开的matlab中,找到相应的下载目录,右键点击然后选择下载并安装(download and install),否则似乎会出错。禁用IPv6

IPv6,顾名思义,就是IP地址的第6版协议。

我们现在用的是IPv4,它的地址是32位,总数有43亿个左右,还要减去内网专用的192、170地址段,这样一来就更少了。

然而,IPv6的地址是128位的,大概是43亿的4次方,地址极为丰富。

网友Kshitij Mall给出了这样一个解决思路:首先打开控制面板中的编辑系统环境变量。

在高级选项中,点击环境变量。

在系统变量栏中添加如下两个变量:(1)variable name:“JAVA_TOOL_OPTIONS”;value:“-Djava.net.preferIPv4Stack=true”;(2)variable name:“JAVA_OPTIONS”;value:“-Djava.net.preferIPv4Stack=true”。另外根据该网友所述,安装完成后可以删去这两个环境变量。注意:仅输入引号内部的内容。

java文档指示,设置jvm属性java.net.preferIPv4Stack为true时,就可以禁用IPv6。反之,若设为0,则启用。注:禁用设置时不需要重启系统。

由于该网友的系统配置和我相同(MATLAB 2019a on Windows 10 system with 64 bits),于是我毫不犹豫地首先尝试了他的方法,不知道是卡进去的原因还是为何,我成功看到了协议界面(原本一直卡在附加功能管理器加载的空白界面),但是最终开始下载支持包失败。

关闭防火墙失败之后,我继续看评论,看到一个网友感谢另一个网友提供的solution,我非常激动,感觉自己也要跟着解决了。

似乎好像取得了一定的进展,但是在下载第三方包的时候还是卡住了(3rt party download error),我浏览了大多数网友的评论,貌似大家基本上都卡在了这里。

成功的方法

当我快要绝望的时候,突然看到了评论区感谢三连,都是感谢同一个人的。这已经是2018年的一个回复了,看评论发现他们使用的是Windows 7系统,但我决定还是试一下,结果真的成功了,非常感谢最初的solution提供者pawan singh!

具体方法如下:到这个网址下载合适的TDM-GCC。

下载之后,create一个新的到设定的安装路径中。注意:根据matlab文档(文首第一个参考链接)。MinGW的安装文件夹名称不能包含空格。例如,不要使用:C:\Program Files\mingw-64。应改用:C:\mingw-64。我建议直接装在C盘下面,默认似乎也是这样,维持不变即可。

与之前修改系统变量方式类似。添加新的系统变量名为MW_MINGW64_LOC,值为MinGW-w64编译器的安装位置,于我是C:\TDM-GCC-64。最后别忘了确定设置。

在matlab命令行内执行命令:setenv('MW_MINGW64_LOC', 'path'),folder为TDM-GCC的安装位置,要加单引号。例如我是:setenv('MW_MINGW64_LOC', 'C:\TDM-GCC-64')。

可以继续在命令行中执行命令:mex -setup。若没有报错,则表明成功了。

然而

英语老师说,however后面的往往是重点,那么我这里就however一下。

上面的方法问题是没有,但是使用的时候有可能会收到警告:使用的是不受支持的MinGW编译器版本。

如果没有收到这个警告,那么就万事大吉,如果有的话,能运行的话依旧还是万事大吉。

But如果真的因此而运行出错,或者看着warning心里实在不舒服的话,可以看一下我后来写的matlab笔记:MEX文件函数使用中的问题。

matlab exe mingw,matlab笔记:安装MinGW编译器相关推荐

  1. Matlab 安装 MinGW64编译器

    1. 在Matlab中使用mex编译c程序时,需要安装编译器,如果没有安装VS或者不需要安装VS等,只有较少的编译需求时,可以安装MinGW64,Matlab也会推荐安装MinGW. 2. 在官网(M ...

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

    Matlab 2017b错误使用 mex 未找到支持的编译器或 SDK.您可以安装免费提供的 MinGW-w64 C/C++ 编译器:请参阅安装 MinGW-w64 编译器. 1.首先打开matlab ...

  3. Matlab2022a安装MinGW64编译器把matlab函数转换为c/c++库函数

    Matlab2022a安装MinGW64编译器把matlab函数转换为c/c++库函数 最近在项目中,想把部分matlab中的算法函数转换为Qt下调用的C++函数,花了一天时间,配置成功,现把部分过程 ...

  4. 【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )

    文章目录 一.常用的编译器 二.使用 Qt 中的 gcc 编译器 三.独立安装 MinGW 一.常用的编译器 常用编译器 : MSVC GCC MinGW CLANG ; MSVC : 微软 Micr ...

  5. matcom安装时无法寻找到matlab.exe的解决办法

    网上很多matcom的安装详解,我就不搬砖了,有需要的自己搜下,重点讲下今天安装时候遇到的BUG和找到的解决办法 遇到的问题是: 1.首先电脑里同时有vs2012和vc++6.0(我是win8系统), ...

  6. (Windows系统)MATLAB2021a安装MinGW -w64

    %%MATLAB2021a安装MinGW -w64%%%%%%%%%%%%% %%创建时间2021年6月24日%%%%%%%%%%%%%%%%%%% %%创建者回全奇%%%%%%%%%%%%%%%%% ...

  7. MinGW 64的安装 - 官网sourceforge安装失败非翻墙解决办法

    问题: MinGW的windows 64 版本,现在统一在sourceforge上下载,可是sourceforge上只是下载了一个安装文件: mingw-get-setup.exe 然后,执行这个安装 ...

  8. matlab7 fig exe 阴影,Matlab 生成完全独立运行的 EXE文件的问题请教

    如何将matlab gui文件编辑成exe可执行文件 我现在用Matlab M文件写了一个计算程序,当输入一些数时,通过程序,计算出一些结果.(比如我的 程序是sum=(a+b+c)/d,即给定a,b ...

  9. matlab R2013a 生成exe 脱离matlab开发环境运行

    1.安装编译器 起初安装的VS2013 EXPRESS版本,怎么都不成功,按照网上各种方法都不行(输入mex -setup 报错,No Supported SDK or Complier was fo ...

  10. 安装MinGW和MSYS

    今天和一位朋友聊天,了解到他现在win平台用eclipse来学习编程,于是我也打算安装一个试 试.google了之后发现在win平台上用eclipse开发c/c++程序需要c/c++编译器,而一般大家 ...

最新文章

  1. ZhuGongpu CloudX-for-Android
  2. 基于笛卡尔坐标系下的三边定位的研究(TOA方式定位)
  3. luogu p4767 邮局
  4. Docker默认网络管理
  5. Linux系统下如何安装JDK?
  6. web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...
  7. java继承时父类常量覆盖吗_Java父类继承中的static和final用法
  8. notepad++ :正则表达式系统教程(zz)
  9. Ubuntu 下监控进程网络流量
  10. Android开源框架Afinal第一篇——揭开圣女的面纱
  11. UVA11565 Simple Equations【数学+暴力】
  12. python公开课乐博学院_乐搏学院VIP36期全栈班学习群 - 乐搏软件教育 - 软件测试 - Powered By EduSoho...
  13. hunnu11543:小明的烦恼——分糖果
  14. 架构篇:高可用 Redis 服务架构分析与搭建
  15. SQL Server Management Studio格式化SQL工具(可免费)
  16. VMware Esxi7.0.3f集成最新网卡-v2(2022年7月版)
  17. 双十一优惠算不清凑单太麻烦?苏宁“千人千面”帮你搞定
  18. 关于opencv fitLine直线拟合得斜率及截距
  19. 解决ImageView超出父控件(或屏幕边界)时,图片挤压问题
  20. CentOS7 yum安装tomcat

热门文章

  1. n进制快速转化成10进制
  2. Flutter布局锦囊---屏幕顶部提醒
  3. 中国农业种植施肥机械行业市场供需与战略研究报告
  4. 我的HTML学习之路03
  5. Linux 吉祥物30岁了!“出道”30年,你对Linux了解多少?
  6. Python 实现校园卡目标检测与文字识别系统
  7. 独家对话 HybridOS 操作系统掌门人魏永明:“我们的目标是取代物联网中的安卓” | 人物志
  8. 10年资深面试官直言:80%人面试Java都会止步于此!
  9. 物联网火爆,开发者遇到大难题了!
  10. 微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...