在编译人脸识别代码caffe-sphereface中make matcaffe 是遇到mexext:command not found和g++编译器过高等问题,这里简单记录总结下。
这里自己的matlab安装目录没在/usr/loacal/目录下面,因为系统内存不够,所以需要在设置makefile.config时候设置matlab链接安装路径。
问题一、ubutun 编译matcaffe出现 /mexext:command not found
编译caffe的时候出现make: /usr/local/bin/mexext命令未找到错误,这个mexext存在于matlab的安装路径里。
是因为它没有安装到/usr/loacal/bin下,所以这里mexext命令在bash中找不到,把matlab安装目录/bin/mex链接到/usr/bin
重新链接:ln -s 我的matlab安装目录/bin/mex /usr/bin 再make clean、make all
问题二、linux下Matcaffe调用及库链接问题的解决
(1)MEX matlab/+caffe/provate/caffe_.cpp
building with 'g++'.
warning :you are using gcc version '5.4.0', the version of gcc is not support
(2)Invalid MEX-file ************/libstdc++.so:version 'GLIBCXX_3.4.21' not found
Error in caffe.set_mode_cpu
这里的两个问题是因为安装的matlab路径下面sys里面的库libstdc++.so的问题
办法:
rm -rf /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 删除你安装目录下面的libstdc++.so.6
这里有可能是你自己的matlab安装目录,所以需要根据情况删除
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6
添加linux下面的libstdc++.so.6的软链接的matlab,就是用linux的库,matlab的库版本不对。