在这个特别的日子里,记录一下这个有点冷门的知识点吧,搞了很久,终于可以了。
基础内容就不讲了,大家都有讲到。
我是因为最开始得到的是.dll文件,由MATLAB进行调用,用的是MATLAB7
现在我需要用运算更快,内存更大的MATLAB18,所以我需要重新用MATLAB18生成64位的.mexw64文件。
进入正题:
首先你得有Mingw-w64 ,注意你的MATLAB用的是什么版本(其他大佬有提到怎么查询自己的版本),MATLAB18b用的是Mingw-w64 gcc6.3.0
将你的文件放在你想放的地方,我是放的c盘,然后在MATLAB中输入setenv('MW_MINGW64_LOC','C:\mingw64') 运行
然后再输入:mex -setup 运行
设置环境变量
编译你的.c文件生成 .mexw64文件
1、如果你的c文件就是64位的那就直接
mex 文件名.c 运行
可以在文件名前加上文件存储位置 mex C:文件夹\文件名.c
2、如果你的.c文件是之前32位编写的,那么可以用
mex -compatibleArrayDims 文件名.c
注意: 32位的.c文件用mex 文件名.c 运行生成.mexw64文件,不会报错,但是用起来不对,具体什么原因,我也不清楚了。
具体的mex阐述可看下面的MATLAB帮助文件链接