MATLAB 2014a(8.3)编译器运行时错误libmwlaunchermain.so

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作为安装目录。 并指定了错误的路径,导致相同的错误信息。