matlab R2016b的linux版本使用hold on或者plot等涉及到图形的命令的时候,会出现以下报错。
Can’t reload ‘/usr/local/matlab-res.2015b/bin/glnxa64/libmwosgserver.so’
在usr/lib下面搜索找到libstdc++.so.6复制到matlab下的bin/glnxa64目录下,并重启matlab从而解决问题。
复制的命令(路径不一定完全相同)
cp /usr/lib64/libstdc++.so.6 /usr/local/MATLAB/R2017a/bin/glnxa64
2021-6-21更新
后来又重装了一次linux系统,发现在新的系统上上面的方法不管用了,最后发现是g++版本和matlab里面自带的c++运行库不兼容导致的。
linux每次启动matlab的时候,都会把matlab里面自带的运行库添加到环境变量里面,matlab自带的运行库在,
/rootPath/sys/os/glnxa64
其中rootPath表示的是matlab的根目录,也就是安装matlab的时候选择的那个目录。
把里面c++相关的运行库libstdc++*都删除或者放到其它地方,让matlab找不到,matlab在运行的时候就会乖乖地使用linux系统里面自带的c++运行库。具体是像下面这样操作
mkdir stdcxx
mv libstdc++* stdcxx
然后重新启动matlab,plot函数就可以正常使用了。