MATLAB 2014a(8.3)运行时编译器(MCR)在Ubuntu 13.04中尝试启动部署(使用部署工具)应用程序时出现错误。
如果运行已部署的应用程序,则在安装MCR后立即出现以下错误:
error while loading shared libraries: libmwlaunchermain.so: cannot open shared object file: No such file or directory.
既然我已经找到了解决这个浪费了一天的问题,我只想分享一下:
这似乎是MATHWORKS为Linux设计的MATLAB MCR安装脚本的一个问题。 此外,这是一个已知的Ubuntu错误的结果https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/380360 。 要修复它,请将您的MCR添加到$ PATH中,如下所示:
首先确保将缺少的文件添加到终端的正确文件夹中:
sudo cp /usr/local/MATLAB/MATLAB_Compiler_Runtime/v83/runtime/glnxa64/*/usr/local/MATLAB/MATLAB_Compiler_Runtime/v83/bin/glnxa64
将适当的库文件夹添加到.profile文件夹中,以便在注销ubuntu之后,此更改将保留:gedit .profile
在文件末尾添加以下几行:
#MATLAB MCR export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v83/bin/glnxa64 export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v83/X11/app-defaults export PATH=$PATH:$LD_LIBRARY_PATH export PATH=$PATH:$XAPPLRESDIR
在终端中调用以下代码以确保Ubuntu错误不会重写您的变量:
echo STARTUP=\"/usr/bin/env LD_LIBRARY_PATH=\${LD_LIBRARY_PATH} \${STARTUP}\" | sudo tee /etc/X11/Xsession.d/90preserve_ld_library_path
重启
如果此解决方案无效,请尝试从MATHWORKS网站重新安装MATLAB MCR 8.3,然后重复这些步骤。
在我的情况下(Matlab R2016b = v91),由Matlab生成的二进制文件伴随着一个为我设置LD_LIBRARY_PATH
的shell脚本。 如果我只是跑步
./run_scriptname.sh
它抱怨缺少<deployedMCRroot>
。 所以用脚本运行
./run_scriptname.sh /home/user/MatlabMCR/v91
它开箱即用。
对我来说,上面显示的路径是<deployedMCRroot>
并不明显,因为我选择了/home/user/MatlabMCR
作为安装目录。 并指定了错误的路径,导致相同的错误信息。