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位配置步骤和经验如下:

  1. 系统中添加环境变量,步骤为:“计算机”右键–“属性”–“高级系统设置”–“高级”–“环境变量”–“系统变量”–“path”。
  2. 在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 R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
  3. 设置matlab编译环境,这里我们会生成.dll,.lib,.h这三类文件。具体步骤如下:打开matlab2017b,然后写个简单的script。接着打开matlab主窗格,输入mex -setup,选择mex -setup C++,接着输入mbuild -setup,选择C++。
    MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
    MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
  4. 接着输入 mcc -W cpplib:libMyAdd -T link:lib MyAdd.m,等待matlab生成.h,.lib.dll等文件,这个要比上面两个稍慢点。这里matlab配置完成。
    MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
  5. 打开VS2015,新建一个项目,win32控制台程序。然后打开新建项目的属性页。
  6. 剩下的步骤与百度经验: https://jingyan.baidu.com/article/6b182309a497b0ba58e159b4.html 中区别仅在于对于VS配置地址中的所有32位的相关配置地点改成64位的,如果64位的某些文件夹里没有所述地址或者所述文件夹就不要了,大胆选,没有问题。(上述步骤部分借鉴该经验,虽然软件系统都不同,但是VS配置步骤是共通的)
  7. 这里要注意的是,VS如果需要配置Release的话,相应的配置开启界面应不同,一一对应。
    MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
  8. 那么我们就来到了问题阶段,在64位环境中,配置上述步骤确认无误后程序总是中断报错,这是因为VS的异常设置中C++出现异常就中断报错,这里把引发时中段的第一项C++ Exceptions前面的勾或者框去掉即可(非常重要,能解决绝大多数的问题)。
    MATLAB R2017b 64位和VS2015联合编译 Joint programming of MATLAB R2017b 64bit and VS2015
  9. 确定了VS和Matlab版本以后出现错误,要相信是自己配置的问题,重装软件和重装系统没有任何用,虽然我师兄说有用,然而在我痛定思痛重装以后连出现的错误都和之前一样emmm。
  10. 严格按照步骤,可做变通,但不可作改变
  11. 在成功用了一段时间以后,有一天运行了VS突然就闪退,这个时候不要怀疑自己前一天晚上看了啥做了啥WIN10是不是偷偷自己更新了,录个小视频,就会发现程序界面出现一行字,matlabXXXrx.XXX错误或者找不到,好的,MATLAB生成的文件出错了,重新上述生成三个文件的操作,这种情况经常发生,在我做实验的这一年里半个月出现一次。
  12. 最后,感谢自己没有放弃坚持了下来,第一次写blog,若有不清楚的欢迎提问,见谅。