MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
MATLAB R2017b 64位和VS2015联合编译
Joint programming of MATLAB R2017b 64bit and VS2015
- 使用软件
- WIN10(64位)
MATLAB R2017b(64位)
VS2015
为了做联合编译可花了一段时间,因为还要兼容相应的OpenCV,换了各种MATLAB和VS版本,被网上说的32位和64位唬得一愣一愣的,什么版本也都算试过,系统也差点濒临重装,以为重装才能解决,最后还是搞好了。
先贴步骤吧,32位64位是共通的,只是64位多了一步。PS:需严格按照步骤,不是做底层的,会遇到各种各样的情况,同一现象也可能是不同原因。
我现在的代码做到了1500行的MV联合编程+OpenCV2.4.13+双线程+Mat文件调用+串口通信,所以以下步骤配置是大致通用的。
32位配置步骤和经验如下:
参照百度经验就足够了:https://jingyan.baidu.com/article/6b182309a497b0ba58e159b4.html
64位配置步骤和经验如下:
- 系统中添加环境变量,步骤为:“计算机”右键–“属性”–“高级系统设置”–“高级”–“环境变量”–“系统变量”–“path”。
- 在path中添加C:\Program Files (x86)\MATLAB\R2017b\bin\win64(修改为你安装matlab的bin下面的win64目录);C:\Program Files (x86)\MATLAB\R2017b\bin(修改为你安装matlab的bin目录);D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin(修改为你安装VS的VC下的bin目录);修改完成后点确定,然后重启计算机。(注意:这里不要删除原MATLAB安装时的任何环境变量,把路径加在他们下面就好,也不要调整上下位置)
- 设置matlab编译环境,这里我们会生成.dll,.lib,.h这三类文件。具体步骤如下:打开matlab2017b,然后写个简单的script。接着打开matlab主窗格,输入mex -setup,选择mex -setup C++,接着输入mbuild -setup,选择C++。
- 接着输入 mcc -W cpplib:libMyAdd -T link:lib MyAdd.m,等待matlab生成.h,.lib.dll等文件,这个要比上面两个稍慢点。这里matlab配置完成。
- 打开VS2015,新建一个项目,win32控制台程序。然后打开新建项目的属性页。
- 剩下的步骤与百度经验: https://jingyan.baidu.com/article/6b182309a497b0ba58e159b4.html 中区别仅在于对于VS配置地址中的所有32位的相关配置地点改成64位的,如果64位的某些文件夹里没有所述地址或者所述文件夹就不要了,大胆选,没有问题。(上述步骤部分借鉴该经验,虽然软件系统都不同,但是VS配置步骤是共通的)
- 这里要注意的是,VS如果需要配置Release的话,相应的配置开启界面应不同,一一对应。
- 那么我们就来到了问题阶段,在64位环境中,配置上述步骤确认无误后程序总是中断报错,这是因为VS的异常设置中C++出现异常就中断报错,这里把引发时中段的第一项C++ Exceptions前面的勾或者框去掉即可(非常重要,能解决绝大多数的问题)。
- 确定了VS和Matlab版本以后出现错误,要相信是自己配置的问题,重装软件和重装系统没有任何用,虽然我师兄说有用,然而在我痛定思痛重装以后连出现的错误都和之前一样emmm。
- 严格按照步骤,可做变通,但不可作改变
- 在成功用了一段时间以后,有一天运行了VS突然就闪退,这个时候不要怀疑自己前一天晚上看了啥做了啥WIN10是不是偷偷自己更新了,录个小视频,就会发现程序界面出现一行字,matlabXXXrx.XXX错误或者找不到,好的,MATLAB生成的文件出错了,重新上述生成三个文件的操作,这种情况经常发生,在我做实验的这一年里半个月出现一次。
- 最后,感谢自己没有放弃坚持了下来,第一次写blog,若有不清楚的欢迎提问,见谅。