ubuntu16.04 matlab2017b 调试dmp v5 mex 升级位 mex 使用错误

dpm release v5 在windows下一直没调通,估计也是编译器的问题。对于我这种电脑盲,系统盲的人,一般碰到问题都是找人解决的,多少年来一直是这样,养成了坏毛病,一碰到系统的事就退缩,这次自己终于突袭成功。

按照网上说的,dmp v5调试成功:

1.  安装matlab2017b

推荐博客:安装文件和一步步安装教程全都有,真心感谢:

https://blog.csdn.net/qq_32892383/article/details/79670871

2. 下载dpm v5

原网站上好像需要翻墙,我打不开,后来在CSDN下载中下载的

3. 打开编译,出现GCC版本过高报警(忘记截图了)

   按照此博客将GCC降级: https://blog.csdn.net/shuifu1988/article/details/76096108

4. run compile

  说mex使用错误,然后就是后面的warning 和 error,基本意思是rror: cannot convert ‘int*’ to ‘const
mwSize* {aka const long unsigned int*}’ in initialization
   const mwSize *A_dims = MODEL->featdims[L];

用mex -setup,显示:

mex -setup5
MEX 配置为使用 'gcc' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
     包含 2^32-1 个以上元素的 MATLAB 变量。您需要
     更新代码以利用新的 API。
     您可以在以下网址找到更多的相关信息:
     http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

打开后说的是mex 由32位升级64位的事情,反正我也没太看明白,后来在网上搜了一下,就说把所有 *int或int 数组,都改成mwSize就行了。我就按照这样把所有的地方都改了,compile没问题后就相当于编译成功了。

5。其他问题

 v5内建了不同的文件夹,刚开编译可能会说找不到fv_compile,那是因为没有把里面的文件夹添加,添加方法有两种:

第一种是在compile的头上增加函数:addpath(genpath('.'));

第二种方法就是在matlab工具栏上找到添加路径,选择把文件夹及内嵌文件夹,把v5路径加上就OK了!

6. 现在只是编译成功,demo成功,其他还没开始

猜你喜欢

转载自blog.csdn.net/ADAS_LOVER/article/details/83861334
Mex
今日推荐