您的位置:首页 > 编程语言 > MATLAB

caffe编译matlab 接口以及出错问题

2016-12-28 17:01 288 查看

首先,安装caffe之后编译

sudo make all -j8

sudo make test -j8

sudo make runtest -j8

接下来编译matlab借口

sudo make matcaffe -j8

测试matlab 接口: sudo make mattest -j8 

如果顺利的就OK了

 

但是,如果matlab版本和gcc(Linux)版本不匹配的话,就会引起错误



在matlab中如果调用caffe的话,也有可能遇到下面的错误提示和上面的错误语句

Invalid MEX-file '/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64':
/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version
`GLIBCXX_3.4.21' not found (required by /home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64)

matlab自身引用的gcc版本和系统的版本不匹配,一般情况是matlab引用的版本太低

有的caffe安装教程刚一开始就会降低gcc版本

如果没有,那就可以更改matlab中引用的gcc的软连接

 我的Ubuntu 中gcc的路径是/usr/lib/x86_-linux_gnu/路径下的libstdc++.so.6的软连接不匹配(保证和l/usr/lib/x86_64-linux-gnu/libstdc++.so.6 连接版本一样)

可以通过 ls -al /usr/lib/x86_64-linux-gnu/libstdc++.so.6  查看连接的详细信息

sudo ln -s /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.21 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6

更新软连接sudo ldconfig  

这样更新软连接之后,有时候还是出错,就有可能是matlab中引用的opencv版本不匹配

如: Invalid
MEX-file
'/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64':/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:
version`GLIBCXX_3.4.21'
not found
(required
by /home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64)

这时候就还需要更新一些软连接,opencv相关的

查看下相关文件

 ls -al /usr/local/MATLAB/R2014a/bin/glnxa64/libopen* ls -al /usr/local/opencv-2.4.13/build/lib/libopencv_*  (我安装的opencv2.4,因为安装3.0老是编译不通过)

删除原来的连接

sudo rm -rf libopencv_core.so.2.4 libopencv_highgui.so.2.4 libopencv_imgproc.so.2.4

建立新的连接

sudo ln -s /usr/local/opencv-2.4.13/build/lib/libopencv_core.so.2.4.13 libopencv_core.so.2.4

sudo ln -s /usr/local/opencv-2.4.13/build/lib/libopencv_imgproc.so.2.4.13 libopencv_imgproc.so.2.4

 sudo ln -s /usr/local/opencv-2.4.13/build/lib/libopencv_highgui.so.2.4.13 libopencv_highgui.so.2.4

更新连接 sudo ldconfig

再重新测试接口 sudo make mattest       OK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息