2015-02-11 236 views
2

我試圖從Matlab運行R使用system命令。當我進入 命令system('R'),出現以下錯誤:當我使用它Matlab的外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作品。我正在使用Linux。

+0

您可以添加相關的MATLAB代碼嗎? – Yellows 2015-02-11 17:43:47

+1

我剛剛試過在OS X 10.10.2和R2014b上運行'system('R')',它工作正常。您應該也可以編輯您的問題,以包含有關您的操作系統,Matlab版本(R2014a,我假設)和R版本的更多詳細信息。我想知道這是否會成爲這裏的主題,並且更適合[SuperUser](http://superuser.com)?此外,[這](http://stackoverflow.com/questions/23494103/version-cxxabi-1-3-8-not-found-required-by)有幫助嗎? – horchler 2015-02-11 18:49:30

+0

我找到了我需要的答案https://stackoverflow.com/questions/9959306/how-to-tell-mex-to-link-with-the-libstdc-so-6-in-usr-lib-instead-的最一個-i的。 Matlab使用它自己的libstdC++。so.6版本,所以我不得不加載系統版本而不是Matlab版本 – Bob 2015-02-12 04:49:11

回答

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)