ubuntu下使用MATLAB过程中的若干问题

ubuntu版本:Ubuntu 20.04

内核:Linux 5.15.0-97-generic

MATALB版本:MATLAB R2022b

问题1:运行脚本时闪退

报错信息:

复制代码
Inconsistency detected by ld.so: ../elf/dl-tls.c: 517: _dl_allocate_tls_init: Assertion `listp != NULL' failed!

参考:

https://ww2.mathworks.cn/matlabcentral/answers/1454674-why-does-matlab-crash-on-linux-with-inconsistency-detected-by-ld-so-elf-dl-tls-c-597-_dl_allo

https://blog.csdn.net/a970973835/article/details/110422343

链接中的各位大佬已经说的很清楚了,大致意思就是MATLAB运行需要调用的是gtk-2.0+的canberra动态链接库,但是ubuntu中默认安装了libcanberra-gtk3-module(gtk-3.0+),发生版本冲突。

他们给出解决办法:

解决办法:

1、安装gtk-2.0+版本的canberra,终端运行如下命令即可:

sudo apt-get install libcanberra-gtk-module -y

2、添加软连接,终端运行如下命令即可:

sudo ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so /usr/lib/libcanberra-gtk-module.so

我个人的情况是gtk2.0和3.0本身就有,所以执行完没有进行下载,当然第一步也不多余。然后第二步没有执行成功,因为它告诉我,该文件已存在。没办法,我就直接把/usr/lib/路径下的libcanberra-gtk-module.so删除了(不放心直接删除的话,可以在别的路径下留个备份),再运行的第二步命令。

问题解决,后续使用暂时没什么问题。

问题2:无法保存.slx文件

第一次开始打开.slx文件,甚至还出现MATLAB闪退的情况。后来,我先在MATLAB界面打开Simulink,然后再在Simulink中打开模型,并没有闪退的情况。之后再在MATLAB中直接打开.slx文件也没问题了。

说回正题,目前的问题是保存.slx文件报错:

写入文件时出错:无法关闭包:"无效的跨设备链接(18)"

主要参考:

https://ww2.mathworks.cn/matlabcentral/answers/1798895-invalid-cross-device-link-18-when-saving-a-file-on-arch-linux

https://blog.csdn.net/LLiu_M__/article/details/135221929

解决方法:

更改MATLAB的临时文件夹路径,默认是/temp/,可以通过在命令行通过setenv更改路径到当前文件夹。

更改后,clear all,再查询当前的tempdir,可以看到路径已经更改。

在MATLAB命令行输入

matlab 复制代码
clear all
tempdir
setenv('TMPDIR','/home/lvh/文档/MATLAB_Items/DMP_EXO/exo')
clear all
tempdir

现在就可以保存模型了,但是下次打开还是会报错...

所以在没找到什么好的解决办法之前只能这么凑合一下。为了避免重复输入很多次这些命令,可以在当前存放.slx的目录下写个.m脚本文件,随便命个名,比如说setEnv.m

把必要的命令输进去

matlab 复制代码
clear all
setenv('TMPDIR','当前路径')
clear all

保存脚本,然后需要保存模型就运行这个脚本。运行一次之后,模型就可以正常保存了,只要不关闭matlab,不需要每保存模型前都运行脚本。

相关推荐
ShineWinsu4 小时前
对于Linux:动静态库的制作与原理的解析—下
linux·运维·服务器·进程·链接·虚拟地址空间·
南宫萧幕4 小时前
自控PID+MATLAB仿真+混动P0/P1/P2/P3/P4构型
算法·机器学习·matlab·simulink·控制·pid
RH2312115 小时前
2026.4.16Linux 管道
java·linux·服务器
aq55356005 小时前
Laravel5.X核心特性全解析
ubuntu·debian
handler015 小时前
Linux: 基本指令知识点(2)
linux·服务器·c语言·c++·笔记·学习
liuyukuan5 小时前
如何在win11上打开 WSL2(Windows 的 Linux 子系统)?
linux·windows
橙子也要努力变强6 小时前
Linux信号机制
linux·服务器·网络
shughui6 小时前
FinalShell / Xshell 完整教程(下载+安装+使用,2026最新版)
linux·fiddler·xshell·xftp·finalshell·远程连接工具
程序猿编码6 小时前
给你的网络流量穿件“隐形衣“:手把手教你用对称加密打造透明安全隧道
linux·开发语言·网络·安全·linux内核
pengyi8710156 小时前
私网IP映射公网基础原理,搭配代理IP远程访问入门
linux·服务器·网络