2015-02-11 3 views
2

Я пытаюсь запустить R из Matlab, используя команду system. Когда я вхожу команда system('R'), я получаю следующее сообщение об ошибке:Системная команда MATLAB

/usr/lib64/R/bin/exec/R: /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.52) /usr/lib64/R/bin/exec/R: /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.52)

R работает, когда я использую его вне Matlab. Я использую Linux.

+0

Не могли бы вы добавить соответствующий код MATLAB? – Yellows

+1

Я просто попытался запустить 'system ('R')' на OS X 10.10.2 и R2014b, и он работал нормально. Вероятно, вы также должны изменить свой вопрос, чтобы включить дополнительные сведения о вашей ОС, версии Matlab (R2014a, я полагаю) и версии R. Интересно, может ли это быть вне темы для этого и лучше подходит для [SuperUser] (http://superuser.com)? Кроме того, помогает ли [this] (http://stackoverflow.com/questions/23494103/version-cxxabi-1-3-8-not-found-required-by) помощь? – horchler

+0

Я нашел ответ, что мне нужен https://stackoverflow.com/questions/9959306/how-to-tell-mex-to-link-with-the-libstdc-so-6-in-usr-lib-instead- оф-один-я. Matlab использовал собственную версию libstdC++. So.6, поэтому мне пришлось загрузить системную версию вместо версии Matlab – Bob

ответ

3

Ответ можно найти на How to tell mex to link with the libstdc++.so.6 in /usr/lib instead of the one in the MATLAB directory?

По существу, Matlab использует собственную версию libstdC++. So.6 при запуске команды из системы, так что вы должны убедиться, что система использует libstdC++. So.6 в месте по умолчанию на компьютере.

% Save library paths 
MatlabPath = getenv('LD_LIBRARY_PATH'); 
% Make Matlab use system libraries 
setenv('LD_LIBRARY_PATH',getenv('PATH')) 
system('R') 
% Reassign old library paths 
setenv('LD_LIBRARY_PATH',MatlabPath)