程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6??

开发过程中遇到如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?的解决方法建议,希望对你解决如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?有所启发或帮助;

您需要创建一个指向gcc 4.7库的符号链接,以便matlab知道要使用它。就像是:

ln -s {/path/to/file-namE} {link-namE}

如果您不想使用符号链接,则只需在启动matlab的终端中定义此路径:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libstdc++.so.6
./matlab

解决方法

现在,MATLAB 2012a中的mex仅正式支持gcc 4.4.6,但我要自担风险使用gcc 4.7。现在,如果我直接用mex编译东西,它将抱怨

/usr/lib/gcc/i686-linux-gnu/4.7/cc1plus:
/usr/local/MATLAB/R2012a/sys/os/glnx86/libstdc++.so.6:
version `GLIBCXX_3.4.15' not found
(@R_801_10613@ired by /usr/lib/i386-linux-gnu/libppl_c.so.4)

/usr/lib/gcc/i686-linux-gnu/4.7/cc1plus:
/usr/local/MATLAB/R2012a/sys/os/glnx86/libstdc++.so.6:
version `GLIBCXX_3.4.15' not found
(@R_801_10613@ired by /usr/lib/i386-linux-gnu/libppl.so.9)

通过Strings /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep 'GLIBCXX'我确认它libstdc++.so.6具有该版本字符串。我审查@H_659_5@mexopts.sh和修改变量$RPATH,并$MLIBS在该脚本,但它不工作。因此,如果我不使用符号链接,那么在哪里可以配置libstdc++.so.6@H_149_6@mex使用的路径?谢谢。

大佬总结

以上是大佬教程为你收集整理的如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?全部内容,希望文章能够帮你解决如何告诉mex链接到/ usr / lib中的libstdc ++。so.6而不是MATLAB目录中的libstdc ++。so.6?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。