MALTAB调用C/C++函数的步骤
MATLAB是一种不需要编译的解释性语言,调试比较方便,但是缺点是速度慢,最简单的体现就是执行循环时。C/C++复杂但执行效率很高,能快速。
因此实际操作中希望实现在MATLAB中调用C/C++函数。实现的方式是:通过mex库将C++函数变成matlab可执行程序。这简单的一句话,字字都是坑。所以完整记录一下流程。
使用软件版本
- MATLAB:R2021b
- C++编译器:vscode
- win10
- MinGW-w64版本:6.3
具体步骤
- 一.下载安装合适的MinGW-w64
- 二.配置系统环境变量
- 三.配置MATLAB环境变量
- 四.配置vscode头文件路径
一.下载安装合适的MinGW-w64
1.版本选择
MATLAB和MinGW-w64的版本是严格对应匹配的,因此不能随意下载MinGW-w64。根据MATLAB版本参考:
2.安装MinGW-w64
下载的方式有两种,一是通过网页离线安装,另一种是通过在线mingw-w64-installer.exe
安装。
在线安装的方式会因为网络问题出现the file has been downloaded incorrectly
报错,所以更推荐离线安装。
这里附上MinGW-w64的安装包,包含
8.1
、6.3
和exe
。链接:https://pan.baidu.com/s/1dqATIL7jSqNze0qr_0fFdA?pwd=1e03
提取码:1e03
2.1在线安装
在线安装只需下载exe,点击运行,选择合适的版本(图为默认版本)。
从上到下分别是:
version
GCC版本:按第一步选合适的。Architecture
计算机系统架构:系统是64位选X86_64
,32位选i686
。Threads
操作系统接口协议:开发 Windows 程序选win32
,而开发Linux
、Unix
、Mac OS
等其他操作系统下的程序选posix
。Excpetion
异常处理模型:seh
不支持32位,sjlj
支持32位。Build revision
建立修订:默认是0。
继续安装,由于网络原因,大概率会遇到上文提到的问题:the file has been downloaded incorrectly
,那么就放弃exe吧,加入离线安装的怀抱。
2.2离线安装
链接:https://pan.baidu.com/s/1dqATIL7jSqNze0qr_0fFdA?pwd=1e03
提取码:1e03
压缩包解压,找个合适的文件夹扔进去就完事儿了。最好路径全英文,不要给后续找不必要的麻烦。
二.配置系统环境变量
1.文件管理器→此电脑
2.右键→属性
3.下划→高级系统设置
4.高级→环境变量
5.系统变量→path→编辑
6.新建→安装位置bin文件和C盘bin文件→确定
- 在这里提一句,如果
path编辑
不是如图所示的界面,而是一个小框一条显示,原因是%
开头的路径是首位,像图片这样选择一个非%
开头的路径做首位就可以了。
7.over!不要着急全部关闭!停在4.环境变量这里,还要继续配置MATLAB的环境变量哦!
8.此时,打开cmd
命令提示符,输入gcc -v
查看是否配置成功。
三.配置MATLAB环境变量
1.新建系统变量
2.命名为MW_MINGW64_LOC
,路径是安装位置
3.确定。
4.打开MATLAB,输入命令:
setenv('MW_MINGW64_LOC','安装位置')
以我为例,即为
setenv('MW_MINGW64_LOC','F:mingw63')
5.输入MATLAB命令:
mex -setup c++
至此安装完毕。在MATLAB中运行mex xxx.c
就可以收获successfully!
四.配置vscode头文件路径
使用vscode编写适合MATLAB的C/C++,需要引用头文件mex.h
和matrix.h
,最好直接加入vscode的头文件库。
这两个文件的位置在:
你的matlab安装位置\extern\include
以我为例,即为:
F:\matlab\R2021b\extern\include
打开vscode,搜索c_cpp_properties.json
,找到includePath
,把文件路径加进去。
- 注意修改
/
符号,方向相反; - 注意加
,
逗号隔开其他非工作区路径。
完成啦!关于mex格式怎么写留到下一次研究啦。
禁止转载,有问题请留言,有错误拜请纠正。谢谢包容和喜欢!