/usr/../libstdc++.so.6:版本`GLIBCXX_3.4.11'找不到(需要......)

时间:2014-03-21 16:33:58

标签: c++ linux matlab gcc mex

我已经坚持了几个星期这个问题并一直在互联网上寻找解决方案,但到目前为止还不太好......

所以我有一个由其他人编写的程序,我尝试在Matlab中编译它以使其工作。我的电脑是Red-hat企业Linux工作站(64位),安装了gcc 4.4.3和Matlab 2011b。 gcc与我的Matlab(http://www.mathworks.com/support/compilers/R2011b/glnxa64.html)兼容。

编译工作正常(我的意思是,在Matlab命令窗口中没有出现错误信息)。但是在编译之后,每当我使用编译中的特定函数(它的调用“mexLasso”)时,它都会显示如下错误:

***无效的MEX文件'/usr/local/matlab_R2011b/toolbox/spams-matlab/build/mexLasso.mexa64': /usr/local/matlab_R2011b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:版本 找不到'GLIBCXX_3.4.11'(需要 /usr/local/matlab_R2011b/toolbox/spams-matlab/build/mexLasso.mexa64)

测试错误(第24行) 阿尔法= mexLasso(X,d,PARAM); *

所以我在终端输入“strings /usr/lib/libstdc++.so.6 | grep GLIBC”,我发现其中实际上是“GLIBCXX_3.4.11”。

我一直在使用Linux和gcc的东西只有几个月......所以还有很多我不理解的东西。如果您能详细解释它将会有很大帮助。谢谢!

%%更多细节: 我从http://spams-devel.gforge.inria.fr/downloads.html获得了关于机器学习的这些程序。奇怪的是,在编译之后,该包中的其他函数工作正常(例如“mexTrainDL”)。

4 个答案:

答案 0 :(得分:5)

@whjiang提出的解决方案有效,但有两个限制:

  1. 您可能需要 sudo 权限才能更改库符号 链接。
  2. 此更改是全局的,可能会影响所有用户
  3. 所以还有另一个。

    正如本answer from MATLAB Central所解释的那样,问题是由Matlab引起的:

      

    Matlab在内部将 LD_LIBRARY_PATH 更改为首选<MatlabPATH >/sys/os/<ARCH>

    <MatlabPATH>/sys/os/libstdc++.so.6已过期。

    在调用Matlab时,解决方案设置为 LD_PRELOAD

    env LD_PRELOAD=/usr/lib/libstdc++.so.6  <MatlabPATH>/bin/matlab -desktop
    

    libstdc++.so.6我的路径与os不同。例如,在我的LMDE2上,路径为/usr/lib/x86_64-linux-gnu/libstdc++.so.6

答案 1 :(得分:2)

答案 2 :(得分:1)

这是一个解决方案:

sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19 / usr / local / MATLAB / R2011b / bin / glnxa64 / libstdc ++。so.6

解释和参考: http://fantasticzr.wordpress.com/2013/05/29/matlab-error-libstdc-so-version-glibcxx_3-4-15-not-found/

答案 3 :(得分:1)

此页面中的简单解决方案(http://ubuntuforums.org/showthread.php?t=808045)对我有用。 转到存储libstdc ++。so.6和libgcc_s.so.1的matlab目录。就我而言,这是:

cd /usr/local/MATLAB/MATLAB_Production_Server/R2015a/sys/os/glnxa64

然后重命名libstdc ++。so.6和libgcc_s.so.1:

sudo mv libstdc++.so.6 libstdc++.so.6.orig
sudo mv libgcc_s.so.1 libgcc_s.so.1.orig

那就是它!

相关问题