Can't reload '/usr/loca​l/matlab-r​es.2015b/b​in/glnxa64​/libmwosgs​erver.so'

I use "MatLab" in an old SUN workstation in Linux environment. It is too old to run "MatLab 2015b" and cant not be upgraded. So I use "ssh -XC" to connect to a new Linux server and run "Matlab 2015b". It works normally when I do computation or run a matlab script without plot. However, when I try to generate a figures, it shows error message as:
Can't reload '/usr/local/matlab-res.2015b/bin/glnxa64/libmwosgserver.so'
for example:
>> clear all;
>> x = linspace(0,2*pi,1001);
>> y = sin(x);
>> plot(x,y)
Error using gca
While setting the 'Parent' property of 'Axes':
Can't reload '/usr/local/matlab-res.2015b/bin/glnxa64/libmwosgserver.so'
Error in newplot (line 68)
ax = gca(fig);
I did check the file, "libmwosgserver.so" and it indeed in the fold. What is the problem and how to solve it?
Huang

8 Comments

I have the same problem with R2016a and R2016b. The hints to the solutions did not help. Funnily enough, the problem does not occur when I start Matlab after having newly installed. But as soon as the Computer has been shut down and restarted, the problem occurs.
I had the same problem. I was able to solve it by copying the relevant dynamic library into place.
cp /usr/lib64/libstdc++.so.6 /usr/local/MATLAB/R2017a/bin/glnxa64
Joseph Corneli's solution works for me on Fedora 25. Although it is kind of ugly, since the library will not be affect through updates. But hey, it works for now!
Same for me Fedora 26, it fixes the problem
While the basic idea of Joseph is correct, make MATLAB use the same libstdc++ version as your system, there is a slightly better option where you actually make MATLAB use your system's libstdc++ itself (which also then addresses Ulrich's comment). See the answer I posted below.

Sign in to comment.

 Accepted Answer

This issue may be related to a version conflict between system libraries and the libstdc++ version included with MATLAB. You may be able to resolve this issue by making MATLAB use your system's libstdc++ instead of the libstdc++ shipped with MATLAB. While you can accomplish this in the way described by Joseph above, there is a better way:
From a Linux shell (with appropriate permissions to make modifications in your MATLAB installation, i.e. use "sudo" if needed or work with your system administrator):
1. cd into your MATLAB sys/os/glnxa64 directory.
2. Create a new directory named "old":
mkdir old
3. Move libstdc++* into the old directory:
mv libstdc++* old
Now MATLAB no longer can find its own libstdc++ and it will automatically switch to working with your system's libstdc++.

2 Comments

Hi,
I have the same issue with MatLab 2016b on a RHEL 7.4 machine. I tried moving libstdc++* to directory old but I now get the following errors when I try to run MatLab
MATLAB is selecting SOFTWARE OPENGL rendering. /usr/local/MATLAB/R2016b/bin/glnxa64/MATLAB: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/MATLAB/R2016b/bin/glnxa64/libmwi18n.so)
There are about 20 similar errors for other functions not found.
The computer has an NVIDIA graphics card which appears to have the drivers loaded ok.
any help appreciated Thanks
I have the same error. Were you able to solve ?

Sign in to comment.

More Answers (3)

To those people having issues related to rendering after the above fix, try starting matlab with the -softwareopengl option. I was getting the same error and starting with this option fixed it - I'm not tech savvy enough to know why though.

Categories

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!