caffe编译matlab 接口以及出错问题
首先,安装caffe之后编译sudo make all -j8sudo make test -j8sudo make runtest -j8接下来编译matlab借口sudo make matcaffe -j8测试matlab 接口: sudo make mattest -j8 如果顺利的就OK了 但是,如果matlab版本和gcc(Linux)版本不匹配的话,
首先,安装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
更多推荐
所有评论(0)