运行环境:centos 7.1.1503
软件版本:matlab r2015a
运行matlab时报错:
libGL error:
dlopen /usr/lib64/dri/swrast_dri.so failed
(/usr/local/MATLAB/R2015a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:
version `GLIBCXX_3.4.18'not found (required by
/lib64/libLLVM-3.5-mesa.so))
libGL error:
unable to load driver: swrast_dri.solibGL error: failed to load
driver: swrast
执行命令:
ls
-l /usr/local/MATLAB/R2015a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6
得到:
lrwxrwxrwx. 1
root root 19 Dec 10 19:03 libstdc++.so.6 ->
libstdc++.so.6.0.17
再执行命令:
cd
/usr/local/MATLAB/R2015a/bin/glnxa64/../../sys/os/glnxa64/
strings libstdc++.so.6.0.17 | grep
GLIBCXX
得到:
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
没看到GLIBCXX_3.4.18 。说明matlab自带的库有问题。
执行find命令,查看系统中是否有这个库。
find / -name
'libstdc++.so.6'
得到结果:
find:
\u2018/run/user/1000/gvfs\u2019: Permission denied
/usr/lib/libstdc++.so.6
/usr/lib64/libstdc++.so.6
/usr/local/MATLAB/R2015a/sys/os/glnxa64/libstdc++.so.6
再执行命令:
strings /usr/lib/libstdc++.so.6 | grep
GLIBCXX
得到结果:
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
这说明系统的库已经有了需要的库。网上有资料说要建立一个软链接到这个文件,其实不用。只需要删除matlab库里的软链接就可以了,matlab启动的时候会自动到系统的库中查询。所以执行以下命令就可以了:
rm
libstdc++.so.6