解决/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.18’ not found
Invalid MEX-file '/home/zhangyq/Person-reID/IDE-baseline-Market-1501-master/caffe/matlab/+caffe/private/caffe_.mexa64':
/usr/local/MATLAB/R2015b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /usr/local/lib/libprotobuf.so.15)
Error in caffe.set_device (line 9)
caffe_('set_device', device_id);
Error in extract_feature (line 6)
caffe.set_device(0);
解决方案:
执行:
strings /home/zhangyq/Matlab2014A/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX
显示:
strings: '/usr/local/MATLAB/R2015B/sys/os/glnxa64/libstdc++.so.6': No such file
说明Matlab2014A/sys/os/glnxa64/下没有这个文件。
那在系统里搜索一下libstdc++.so.6,执行:
locate libstdc++.so.6
#搜索结果:
...
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.18
/usr/lib32/libstdc++.so.6.0.18-gdb.py
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.18
/usr/lib64/libstdc++.so.6.0.18-gdb.py
拷贝64位的libstdc++.so.6.0.19到Matlab2014A/sys/os/glnxa64目录:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19 /home/zhangyq/Matlab2014A/sys/os/glnxa64/libstdc++.so.6
将libstdc++.so.6指向libstdc++.so.6.0.19
sudo ln -s libstdc++.so.6.0.19 libstdc++.so.6
可以看一下此时libstdc++.so.6.0.19中包含的:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH