1.版本信息
Ubuntu 16.04 LTS
Matlab 2020a
2.问题描述
Matlab安装完闭之后直接运行,虽然可以启动,但是会报错:
OMEN@OMEN:/usr/local/Polyspace/R2020a/bin$ sudo ./matlab
[sudo] OMEN 的密码:
Gtk-Message: 20:40:41.079: Failed to load module "canberra-gtk-module"
上面最后一行就是报错信息,简而言之就是canberra-gtk-module有问题,不能成功加载,于此同时打开Simulink会发现没有菜单栏和工具栏。
3.解决办法
- 接下来按照信仰与初衷的方法进行解决:
OMEN@OMEN:$ locate libcanberra-gtk-module.so #确认libcanberra-gtk-module是否安装
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so
- 从上面后两行打印信息可以看到,系统已安装gtk-2.0和gtk-3.0的两个版本,此时如果没有安装信息打印,则需要按照张慕风的方案安装该库,具体指令为:
sudo apt-get install libcanberra-gtk-module
安装成功之后尝试重新启动Matlab,查看是否解决,如已解决请跳过下步,否则接着操作。
- 不管一开始有还是后来安装这个库,都无法正常出现菜单栏的原因是Matlab没有成功找到这个库,这是因为linux默认库是从/usr/lib或者/usr/lib64下找,这时候只需要建立一个软连接就行了(路径需要根据自己情况修改)
sudo ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so /usr/lib/libcanberra-gtk-module.so
上面之所以选择gtk-2.0的路径是因为,使用gtk-3.0,然后运行Matlab会报如下错误,也就是两个版本存在一定程度的冲突。
OMEN@OMEN:/usr/local/Polyspace/R2020a/bin$ sudo ./matlab
[sudo] OMEN 的密码:
(MATLAB:409): Gtk-WARNING **: 21:37:17.565: GTK+ module libcanberra-gtk-module.so cannot be loaded.
GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported.
Gtk-Message: 21:37:17.565: Failed to load module "canberra-gtk-module"
- 之后运行Matlab就正常了