J'utilise matlab R2016a sur Fedora 24 et je ne peux pas utiliser la commande plot.
C'est l'erreur que j'obtiens:
Error using gca
While setting the 'Parent' property of 'Axes':
Can't load '/usr/local/MATLAB/R2016a/bin/glnxa64/libmwosgserver.so': /usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by /lib64/libGLU.so.1)
Error in newplot (line 73)
ax = gca(fig);
J'ai aussi vu Comment résoudre le problème: [nom du programme] /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version CXXABI_1.3.8 'introuvable (obligatoire avec [nom du programme] ) et ça n’aide pas.
Ce que j’ai fait, c’est que j’ai édité un fichier nommé .matlab7rc.sh (situé dans le dossier "path_to_ matlab/bin" et son caché) et que je n'ai pas commenté toutes les lignes présentes (il y en a plusieurs):
LDPATH_PREFIX='$MATLAB/sys/opengl/lib/$Arch'
Ce qui suit est indiqué dans le fichier pour décommenter cette ligne (s)
Pour toujours utiliser les bibliothèques OpenGL fournies avec MATLAB, décommentez la prochaine ligne .
Bien que cela ait certainement fonctionné, je suis curieux de savoir si l'utilisation d'OpenGL fourni avec MATLAB dégrade les performances et, en général, en quoi cette approche se compare à la réponse de @ joe_st_amand.
J'ai eu le même problème avec cette version de Matlab et Fedora. Il semble que matlab ajoute ses propres chemins de bibliothèque au démarrage à LD_LIBRARY_PATH.
Vous pouvez démarrer matlab avec et lui dire d’utiliser la bonne version de libstdc ++ en utilisant les éléments suivants: LD_PRELOAD =/usr/lib64/libstdc ++. So.6 matlab -desktop
J'ai ajouté un alias à mon fichier .bashrc: Alias matlab = 'LD_PRELOAD =/usr/lib64/libstdc ++. So.6 matlab -desktop'
J'espère que cela pourra aider!
Solution de rechange:
Renommez le fichier de bibliothèque libstdc ++. So.6 afin que MATLAB ne puisse pas le trouver et soit contraint d'utiliser la version système de la bibliothèque. Ce fichier se trouve dans matlabroot/sys/os/glnxa64 /
Source: https://in.mathworks.com/matlabcentral/answers/329796-issue-with-libstdc-so-6
J'ai essayé et cela a fonctionné comme un charme.
Ce qui suit a travaillé dans Fedora 28 scientific
> cd ~/usr/lib64
> ls libstd*
Pour moi la sortie était
libstdc++.so.6 libstdc++.so.6.0.25
Donc, je viens d'ajouter un alias dans ~/.bashrc
avec le répertoire à libstdc++.so.6.0.25
> emacs ~/.bashrc
Écrivez la ligne suivante à la fin:
alias matlab='LD_PRELOAD=/usr/lib64/libstdc++.so.6 /your/dir/to/bin/glnxa64/MATLAB -desktop'
Où /your/dir/to/
est le répertoire de votre installation MATLAB. ensuite
> source ~/.bashrc
et après cela, je lance simplement > matlab
dans le terminal et tout va bien.