MATLAB下配置C和C++编译器(MinGW)

很多时候需要在Matlab下使用C或C++边写的代码,这时候就需要先用编译器将代码编译成Matlab可以用的mex文件。检测Matlab有没有可以使用的编译器,可以在命令行窗口下,输入mex -setup,如果有的话就会显示出可以用的编译器。

无编译器:
在这里插入图片描述有编译器:
在这里插入图片描述

方法一

(前两步不仅仅适用于MATLAB)

1.安装包下载

方法一:下载Installer在线安装(费时)

方法二:下载离线包(较快)
由于在线安装方式下载较慢,所以可以选择直接下载离线包。

点击此链接:https://sourceforge.net/projects/mingw-w64/files/,进入下图1后将页面往下滑到图2区域,点击所需离线包名称(参照下图),然后就会弹出图3所示对话框,保存下载即可。离线包大约50MB(解压后500MB左右)。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述下载完成解压后的界面是这样的:
在这里插入图片描述

2.环境变量配置

如果下载完成后就进入Windows的命令窗口再次键入gcc,仍会是本文第一张图那样的提示。原因就在于还缺少系统环境变量配置这一环节。

右键计算机→属性→高级系统设置→高级→环境变量,然后鼠标双击系统变量中Path,或者选中后点击编辑,在变量值输入框的末尾输入英文分号后将MinGW-w64包目录下bin文件夹的全路径粘贴到后面,bin的后面有无斜杠均可,如下图:
在这里插入图片描述此时再进入Windows的命令窗口键入gcc -v,将是另一番景象~~~
在这里插入图片描述

3.MATLAB下配置C和C++编译器(MinGW)

但是此时Matlab下还是没有可以使用的编译器
在这里插入图片描述
进行环境变量配置,右键计算机选择“属性——高级系统设置——高级——环境变量”,点击“环境变量”;在系统变量下面,选择“新建”;(位置为安装路径bin目录(eg:D:\software\MinGW-w64\bin)
在这里插入图片描述设置完环境变量后,Matlab还是找不到MinGw编译器的,需要在Matlab中运行如下代码:

setenv('MW_MINGW64_LOC','folder')
比如:setenv('MW_MINGW64_LOC','D:\software\MinGW-w64')//目录为bin的上一级目录

此时执行>> mex -setup
会发现Matlab可以找到已经安装的编译器了。
在这里插入图片描述
注意:如果每次重启Matlab后还是没有发现编译器,而且每次都要重新编译,此时就要看看MinGW的安装目录是不是空格,很多人默认安装在C:\Program File\下,结果就运行不了,因为这其中有空格,此时有两种方法可以解决,第一种就是重新安装到没有空格的文件夹里面,当然这得重新安装,比较麻烦;第二种就是,直接在环境变量那里,把Program File改为Progra~1,即可。

方法二

虽然无报错,但是有警告信息:提示编译器版本不支持,所以又进行了下述操作:

1.matlab主页→附加功能→获取附加功能
在这里插入图片描述2.找到MinGW-w64
在这里插入图片描述3.点击右下角安装即可(我这里已安装所以未显示)在这里插入图片描述

问题“MEX文件无效,找不到指定模块”解决

然而,虽然输出mex -setup未报错,但在运行时出现下述错误:MEX文件无效,找不到指定模块
在这里插入图片描述尝试了网上的建议:将“SDK_PATH\bin”添加到PATH环境变量中,以帮助编译器查找需要的.dll文件,例如添加";C:\myo-sdk-win-0.9.0\bin" 到系统变量,然而仍然报错。
解决方案:将dll文件与.cpp .h放在同一文件夹中,.cpp .h和.dll放在不同的文件夹下,在.cpp中使用.h .dll都是使用的相对路径,通过mex test.cpp编译是可以成功的,但是在调用的时候就会出问题。(原因未知)
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lihe4151021/article/details/121521250