2017-05-28 162 views
1

我知道Linux Matlab只有官方支持gcc 4.9 for mex。使用不同的编译器在Linux上为Matlab创建mex

有谁知道如何获得在Linux上使用mex的Linux英特尔编译器(icc)或更新版本的gcc?

这是最新版本的Matlab(2015-2017)。

+0

“这个软件只支持A,我该如何让B?”让我试着回答,即使它很明显:你不能,它只支持A –

+1

我不知道它是否可能,但是你是否尝试过使用Matlab的C++ API在Matlab环境之外编译** dll **文件,例如使用CMake,还是像QT这样的IDE,并取得成功?如果你的编译器成功了,那么对于** Mex **来说,这是一个很好的机会。仅供参考,mex是一个具有特殊输入函数mexFunction的dll。如果没有该网关功能,则必须使用calllib来加载通用dll。我记得我曾经见过关于如何用cmake编译mex的地方。 –

+0

好的发现它。希望这个帮助。 [编译MEX文件](https://github.com/zchen24/matlab_example/wiki/Compile-MEX-File) –

回答

0

我假设你谈论C++项目。是的,它可能与更新版本的gcc。

  • 检查supported compilers找出哪个Matlab使用哪个gcc版本。
  • 告诉您的较新版本的gcc使用您的Matlab的gcc版本的ABI版本来编译您的项目和所有依赖项。
  • 告诉Matlab在/ usr/lib中使用标准C++库,而不是它自己包含的标准C++库。它向后兼容。

用gcc例> 4.9.x Matlab的2017b:

  • Matlab的2017b与GCC 4.9.x内置
  • GCC 4.9.x是CXX ABI version 8
  • 兼容使用GCC与编辑标记-fabi-version=8为您的mex文件和所有依赖项
  • 在壳export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6之前致电matlab