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 文件错误的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB R2016a 的通用命令

Mex 文件执行中的错误,Matlab 窗口

MATLAB 错误使用 mex

实践Matlab R2016a使用MDCE引擎建立集群

MATLAB 无效的 MEX 文件错误:缺少符号 invalid_argument

Matlab 缺少依赖项 MEX 文件