我在Fedora 24上运行matlab R2016a,但我无法使用plot命令。
这是我得到的错误:
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);
答案 0 :(得分:14)
我做的是编辑了一个名为.matlab7rc.sh的文件(位于“path_to_matlab / bin”文件夹中,隐藏了它),并取消注释了所有行(有几行):
LDPATH_PREFIX='$MATLAB/sys/opengl/lib/$ARCH'
以下文件中说明了取消注释此行
要始终使用MATLAB附带的OpenGL库,请取消注释 线。
虽然肯定有这个技巧但我很好奇是否使用MATLAB附带的OpenGL会降低性能,一般来说这种方法与@ joe_st_amand的答案相比如何。
答案 1 :(得分:9)
我对该版本的matlab和fedora有同样的问题。似乎matlab在启动时将自己的库路径预先添加到LD_LIBRARY_PATH。
您可以使用以下命令启动matlab并告诉它使用正确版本的libstdc ++: LD_PRELOAD = / usr / lib64 / libstdc ++。so.6 matlab -desktop
我所做的是为我的.bashrc文件添加一个别名: 别名matlab ='LD_PRELOAD = / usr / lib64 / libstdc ++。so.6 matlab -desktop'
希望有所帮助!
答案 2 :(得分:0)
替代修复:
重命名libstdc ++。so.6库文件,以便MATLAB找不到它并被迫使用系统的库版本。该文件位于matlabroot / sys / os / glnxa64 /
中来源:https://in.mathworks.com/matlabcentral/answers/329796-issue-with-libstdc-so-6
我尝试过它,就像魅力一样。
答案 3 :(得分:0)
以下在fedora 28科学中工作
> cd ~/usr/lib64
> ls libstd*
对我来说输出是
libstdc++.so.6 libstdc++.so.6.0.25
所以我刚刚在~/.bashrc
中添加了一个别名,其目录为libstdc++.so.6.0.25
> emacs ~/.bashrc
在最后写下面一行:
alias matlab='LD_PRELOAD=/usr/lib64/libstdc++.so.6.025 /your/dir/to/bin/glnxa64/MATLAB -desktop'
其中/your/dir/to/
是MATLAB安装的目录。然后
> source ~/.bashrc
然后我在终端中运行> matlab
,一切正常。
修改。将其添加到桌面条目
您必须使用以下内容制作/编辑matlab.desktop文件,并将其放在.applications
文件夹中才能正常工作。
[Desktop Entry]
Name=Matlab R2017a
Exec=LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.25 /usr/local/MATLAB/R2017a/bin/matlab -desktop &
Icon=~/username/.icons/Matlab_Logo.png
Terminal=false
Type=Application
Categories=Development;Science;Education
从桌面条目打开时,它将加载适当的libstdc。效果很好。