Matlab R2016a Mex 文件错误
Posted
技术标签:
【中文标题】Matlab R2016a Mex 文件错误【英文标题】:Matlab R2016a Mex file error 【发布时间】:2016-04-28 14:21:57 【问题描述】:我在 fedora 23 上有 gcc 版本 5.3.1,我想运行一些 mex 文件。当我编译文件时,我收到以下警告:
警告:您使用的是 gcc 版本“5.3.1-6)”。不支持 gcc 的版本。 MEX 当前支持的版本是“4.7.x”。有关当前支持的编译器的列表 见:http://www.mathworks.com/support/compilers/current_release。
当我尝试运行它时,我收到以下错误:
无效的 MEX 文件“/home/x/Downloads/MatlabEXR/MatlabEXR/exrread.mexa64”:/usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++ .so.6:版本“CXXABI_1.3.8”不是 找到(/home/x/Downloads/MatlabEXR/MatlabEXR/exrread.mexa64 需要)
我试过这个:How to tell mex to link with the libstdc++.so.6 in /usr/lib instead of the one in the MATLAB directory?
但我仍然得到同样的错误。有什么想法可能是什么问题?
【问题讨论】:
错误很明显。您使用的编译器比 MEX 支持的编译器更新。您必须使用 gcc 4.7.x 才能与 MEX 兼容。有关详细信息,请参阅 MathWorks 的此链接:mathworks.com/support/compilers/R2016a/index.html?sec=glnxa64 如何同时拥有 gcc-4.7 和 gcc 5.3.1 并将 matlab 链接到旧版本? 【参考方案1】:我有一个关于 libstdc++ 的类似问题(我无法绘制任何东西)。这是我的问题的链接。 matlab on linux can't plot anything(can't load libstdc++.so.6: version `CXXABI_1.3.8' not found)
那里也说明了我是如何解决这个问题的。
希望有帮助
【讨论】:
【参考方案2】:您的错误源于您的 libstdc++ 默认使用新的 ABI (https://gcc.gnu.org/gcc-5/changes.html)。您无法使用 gcc 5.xx 版本链接您的 MEX 文件。
【讨论】:
以上是关于Matlab R2016a Mex 文件错误的主要内容,如果未能解决你的问题,请参考以下文章