现在的位置: 首页 > 综合 > 正文

Invalid MEX-file R-CNN配置时出错

2018年12月16日 ⁄ 综合 ⁄ 共 928字 ⁄ 字号 评论关闭

在按照官方教程配置R-CNN环境的时候(详见https://github.com/rbgirshick/rcnn/blob/master/README.md),当配置到 Installing R-CNN的第vii步时,输入caffe('get_init_key');时出错,显示

Invalid MEX-file '/home/gipuser/caffe-workspace/caffe-new2/matlab/caffe/caffe.mexa64':
/usr/local/MATLAB/R2013a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by
/home/gipuser/caffe-workspace/caffe-new2/matlab/caffe/caffe.mexa64)

根据回答(https://github.com/BVLC/caffe/issues/827),感觉应该时由于编译caffe时候的库与编译matlab相关的库版本不一样,故

1. locate libstdc++,可以找到几个libstdc++.so.6....

2. 其中,有一个会在matlab目录下的sys/os/*****(不赘述了);另外一个会在/usr/lib/x86***(具体忘了,反正就主要这个形式)

3. 因为caffe早就编译好,而且caffe用的肯定时系统库,所以,心想只要让matlab相关的编译也用系统库就好了。

4. 有了上面的想法,就有几种选择了。

i.将matlab下的libstdc++.so.6 更改名称为libstd++.so.6_back(让matlab找不到这个,但是为了安全还是备份一下吧),这样在执行matlab编译的时候会自动去找系统用的库

ii. 想办法将matlab下的libstdc++.so.6链接到系统用的那个库的文件去(这个的方法应该就比较多了)

我用的时第一种方法,简单易行,轻松搞定(其实搞定的过程时漫长的...)

之所以写这篇,就是想让其他童鞋们在配置RCNN环境时要是遇到了同样问题,本文能有所帮助,提供一点启发

抱歉!评论已关闭.