MATLAB 生成.mexw64文件

本文详细介绍了如何将MATLAB7的.dll文件升级到MATLAB18的64位.mexw64文件,包括设置Mingw-w64环境、配置 mex-setup、识别MATLAB版本以及针对32/64位.c文件的编译方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这个特别的日子里,记录一下这个有点冷门的知识点吧,搞了很久,终于可以了。

基础内容就不讲了,大家都有讲到。

我是因为最开始得到的是.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帮助文件链接

升级 MEX 文件以使用 64 位 API- MATLAB & Simulink- MathWorks 中国

### 如何在MATLAB中正确加载和使用 `.mexw64` 文件 #### 设置当前文件夹路径 为了确保 MATLAB 可以找到并执行 `.mexw64` 文件,需将 `currentfolder` 设置为该文件所在的位置。通常情况下,此位置应设置为编译后的 Mex 文件所在的 Debug 或 Release 目录。 ```matlab cd('path_to_debug_folder'); ``` 这里假设路径为 `D:\Project\Debug`,则命令如下: ```matlab cd('D:\Project\Debug'); % 将 current folder 设定为 mexw64 所在目录[^1] ``` #### 添加库路径至动态链接库搜索范围 为了让操作系统能够定位到所需的依赖项,在某些场景下可能还需要调整系统的环境变量 PATH 或者通过 MATLAB 的 `setenv` 函数临时修改它。不过更常见的是直接利用 Windows 系统本身的机制来完成这项工作。 对于特定版本的 MATLAB 和 Visual Studio 组合而言,应该确认已按照说明添加了必要的附加库目录以及包含目录。例如针对 Matlab R2014b 和 VS2013 这样的组合,则应当加入 `\extern\lib\win32\microsoft` 作为附加库目录,并且把 `\extern\include` 加入到 C++ 编译选项里的 "Additional Include Directories"[^2][^4]。 #### 动态加载 .mexw64 文件 一旦完成了上述准备工作之后就可以尝试调用相应的函数接口了。只需简单地像对待普通的 M 文件一样输入对应的函数名即可自动触发对相应 `.mexw64` 文件的加载过程。 如果一切正常的话,此时就应该可以正常使用由外部编程语言编写并通过 Mex 接口封装好的功能模块了;反之若遇到任何错误提示信息,则建议仔细检查之前的每一步骤是否遗漏或存在误操作之处。 #### 验证安装成功与否的方法之一就是切换到 libsvm 工具包所提供的 matlab 子目录内运行测试脚本。 ```matlab % 假设已经下载解压好 libsvm 并放置于 D:\Program Files\MATLAB\R2014b\toolbox\ cd('D:\Program Files\MATLAB\R2014b\toolbox\libsvm-3.1\matlab\') !make % 使用 makefile 自动生成 mex 版本的支持向量机算法实现 test % 测试样例程序验证能否顺利运作 ``` 以上步骤有助于检验整个流程是否搭建无误[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值