2013-09-11 2 views
3

Я видел подобный вопрос hereобщего Lib libmwi18n.so не найти

После прочтения ответов и комментариев в приведенной выше ссылке я расположен «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 

, который дает OUTPUT

/usr/local/MATLAB/R2012a/bin/glnx86/libmwi18n.so 

Тогда я сделал

export LD_LIBRARY_PATH= /usr/local/MATLAB/R2012a/bin/glnx86 

и снова запустили программу оболочки,

./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

У вас есть LD_LIBRARY_PATH = ... ', тогда как это должно быть' LD_LIBRARY_PATH = ... '(обратите внимание на пробел после знака' = '). Это еще одна опечатка, или ...? –

+0

Что делает 'ls -l/usr/local/MATLAB/R2012a/bin/glnx86/libmwi18n.so' return? если это символическая ссылка, ссылается ли она (в конечном счете) на существующий файл? (попробуйте 'ldd/usr/local/MATLAB/R2012a/bin/glnx86/libmwi18n.so') –

+0

да, это относится к существующему файлу, то что мне делать? – MMH

ответ

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 

EDIT: (после получения дополнительной информации по вопросу поставки)

Скрипт run_app.sh устанавливает свою собственную библиотеку путь, используя переменную окружения LD_LIBRARY_PATH (она объявлена ​​в строках 17-24 и перезаписана в строке 26). Это означает, что все, что установлено в вашей оболочке перед выполнением скрипта, будет перезаписано.

Чтобы указать путь для libmwi18n.so, добавьте путь в скрипте, после строки 17 и до линии 26 с:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/MATLAB/R2012a/bin/glnx86 

(Примечание: существует также распечатка пути LD, так что вы должны быть в состоянии определить, присутствует ли путь glnx86 или нет).

+0

Я пробовал оба из них ... не работает. – MMH

+0

В вопросе, связанном с вашим сообщением, скрипт 'run_test.sh' переопределяет путь LD (который будет перезаписывать все, что настроено в вашей оболочке перед выполнением скрипта). Вы делаете что-то подобное в 'run_app.sh'? – Bonlenfum

+0

Да, run_app.sh делает то же самое, должен ли я писать путь libmwi18n.so внутри оболочки? – MMH

1

Я думаю, что вы хотите glnx86, не glnx68.

Извините, если это был только опечатка в вашем вопросе.

+0

ya это была опечатка ... спасибо .. но это не решает проблему – MMH

+0

Ну что ж, стоит проверить –