matlab调用c,mex的 mexw64 不是有效的 Win32 应用程序

本文介绍了解决OpenCV与Matlab混合编程中出现的错误的方法。通过调整系统环境变量中的OpenCV bin目录从x86到x64,可以确保mexw64文件正常工作。

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

使用OpenCV库,进行混合编程时mex.c文件能够编译成功,并且生出mexw64文件:
这里写图片描述
但是在调用编程成功的函数时,提示下面的错误:
这里写图片描述
解决方法:
将系统环境变量中的OpenCV bin目录进行如下的修改。
将x86修改为x64,即:

C:\OpenCV2.4\build\x86\vc10\bin;

修改为:

C:\OpenCV2.4\build\x64\vc10\bin;

修改完后,切记,重新启动Matlab,然而再次运行Matlab程序。

参考文献:
1.http://bbs.csdn.net/topics/391877069

### 如何在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、付费专栏及课程。

余额充值