我看到了类似的问题here
在阅读上述链接中的答案和评论后,我找到了'libmwi18n.so'文件并设置了LD_LIBRRY_PATH
,但我仍然收到此错误:
'error while loading shared libraries: libmwi18n.so: cannot
open shared object file: No such file or directory'
我做了以下事情:
locate libmwil8n.so
给出输出
/usr/local/MATLAB/R2012a/bin/glnx86/libmwi18n.so
然后我做了
export LD_LIBRARY_PATH= /usr/local/MATLAB/R2012a/bin/glnx86
再次运行shell程序,
./run_app.sh
返回相同的错误。
请帮助我,我该如何解决这个问题?
更新 -
run_spp.sh的内容
!/bin/sh
# script for execution of deployed applications
#
# Sets up the MCR environment for the current $ARCH and executes
# the specified command.
#
exe_name=$0
exe_dir=`dirname "$0"`
echo "------------------------------------------"
if [ "x$1" = "x" ]; then
echo Usage:
echo $0 \<deployedMCRroot\> args
else
echo Setting up environment variables
MCRROOT="$1"
echo ---
LD_LIBRARY_PATH=.:${MCRROOT}/runtime/glnx86 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/bin/glnx86 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/sys/os/glnx86;
MCRJRE=${MCRROOT}/sys/java/jre/glnx86/jre/lib/i386 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/native_threads ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/server ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/client ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE} ;
XAPPLRESDIR=${MCRROOT}/X11/app-defaults ;
export LD_LIBRARY_PATH;
export XAPPLRESDIR;
echo LD_LIBRARY_PATH is ${LD_LIBRARY_PATH};
shift 1
args=
while [ $# -gt 0 ]; do
token=`echo "$1" | sed 's/ /\\\\ /g'` # Add blackslash before each blank
args="${args} ${token}"
shift
done
"${exe_dir}"/b $args
fi
exit
答案 0 :(得分:3)
您的LD_LIBRARY_PATH
不应包含库本身,而应包含包含库的路径。尝试:
export LD_LIBRARY_PATH=/usr/local/MATLAB/R2012a/bin/glnx86
或者可能将此位置附加到路径:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/MATLAB/R2012a/bin/glnx86
编辑:(在提供有关问题的更多信息后)
shell脚本run_app.sh
使用环境变量LD_LIBRARY_PATH
设置它自己的库路径(它在第17-24行中声明,并在第26行中覆盖)。这意味着在执行脚本之前在shell中设置的任何内容都将被覆盖。
要包含libmwi18n.so
的路径,请在第17行之后和第26行之前追加脚本中的路径:
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/MATLAB/R2012a/bin/glnx86
(注意:还有LD路径的打印输出,因此您应该能够判断glnx86路径是否存在)。
答案 1 :(得分:1)
我认为您需要glnx86
,而不是glnx68
。
道歉,如果这只是你问题中的拼写错误。