Matlab mex文件编译

什么是MinGW

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。
MinGW有两种版本,一种是MinGW,是最初开发的MinGW,只能开发32位的应用程序,所以现在已经停止维护了,内部的gcc版本也停在了gcc 4.8.1,而MinGW-64则是目前还在维护的一个项目,它能够开发32位和64位的应用程序。

如果对 MinGW-w64 和 VS2015 等编译器进行一下形容,那么 MinGW-w64 是手动的,而 VS2015 等编译器则是自动的。因此 MinGW-w64 的编译过程更加直观容易理解,也比较适合C语言学习。

下载MinGW-64

MinGW的官网上去下载相应的安装包,MinGW官网
需要注意的是在Windows下的安装包,官网上给出的是一个在线下载的exe文件,就是在电脑上执行后会在线从官网上下载相应的安装文件。
安装的时候的界面如下所示:
在这里插入图片描述
这里需要理解几个概念:
Architecture:由于我的是win10 64位,因此选择了x86_64。如果是32位电脑,需要选择i686。

Threads:这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。我只开发在 Windows 下运行的程序,所以选择了 win32 。

Exception:异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。 我这里选择了 seh 。
如果之前架构选择的是i686,则选项是 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj ,他们都不支持 64位 。

一般不建议这样安装,因为网速的问题,大概率会安装失败。
这个时候我们选择使用压缩包解压安装,而这里的压缩包就要注意了,它的名字比较隐蔽。如下图,我们需要下载.seh后缀结尾的文件,这个才是我们要的压缩文件。
在这里插入图片描述
这里一定要注意了,首先,我们需要下的是seh后缀结尾的压缩包,此外,这里我们还需要注意,在windows操作系统下,这里我们只能下载win32的那个压缩包,因为posix是为unix,linux,mac这些一切非windows操作系统准备的MinGW,所以这里一定要下对版本,不然后面在执行源文件编译的时候就会出现莫名的一些问题。

下载之后就放到安装目录下进行解压,得到的目录如下图所示:
在这里插入图片描述

设置环境变量及导入Matlab

由于是解压安装的,所以需要将其相关的一些文件的目录放到系统环境变量PATH中去,比如,我这里的安装目录为:D:\MinGW\mingw64,所以直接打卡系统环境变量设置,找到PATH变量,在后面加;D:\MinGW\mingw64,不要忘记分号,然后保存即可。
之后就是在Matlab中使用MinGW,需要注意,首先得让Matlab知道我们按照的MinGW在哪,所以需要先设置Matlab的环境变量,在Matlab命令行中执行:
setenv('MW_MINGW64_LOC','D:\MinGW\mingw64')
然后启动,这里是编译C++:
mex -setup C++
最后的结果如下图所示:
在这里插入图片描述
参考:https://blog.csdn.net/iningwei/article/details/101649090

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值