Matlab调用c生成mexw64笔记

1、高版本中mexw64、32相当于dll。放在相应路径下,可以matlab直接调用。

2、64、32不兼容,但可利用源码重新生成符合系统的mexw。

2、利用c源码生成mexw64:

      1)mex -setup设置编译器

      2)mex qp.c  pr_logo.c

注:如果是mex qp.c -I pr_logo.h会多次出现入口点错误,待会研究。

        mex faceDetect.cpp D:\opencv\build\x64\vc10\lib\*.lib(安装opencv的目录),如果为其他链接目录同样会出现入口错误或函数找不到。同时需要将所需.h文件放至相同目录,系统会自动关联

=======================================================================================================

编译时发现一个很有趣的错误,两个文件夹内容完全相同,分别设置为path,左边可以作为工具箱运行,使用右边作为工具箱却出现

The closest match is: faceDetect
in E:\.......\bin\faceDetect.mexw64

Error in TestFaceDetection (line 8)
Face = FaceDetect('haarcascade_frontalface_alt2.xml',Img);

不知是xml还是matlab傲娇,多次试验,未找出原因。

附图:

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

余额充值