using C++11 in Mex with g++ 4.8 in linux
我试图从一个MEX脚本中调用我在C++ 11中写的一个函数。C++代码需要-STD=C++ 11,并且从终端运行良好。这里是G++-V输出:GCC版本4.8.2 20140120(Red Hat 4.8.2-15)(GCC)我有Matlab 2013a用于Red Hat。
当我第一次尝试从Matlab控制台调用mex filename.cpp时,我得到:
This file requires compiler and library support for the ISO C++ 2011
standard. This support is currently experimental, and must be enabled
with the -std=c++11 or -std=gnu++11 compiler options.
号
所以,我进入了/Ur/Prime/Matlab/R2013a/bin /Meopoptsh文件,Matlab用来获得编译器选项并添加了STD=C++ 11。现在我明白了:
cc1plus: error: unrecognized command line option"-std=c++11"
号
从
1 |
那么,我如何才能让它正确地编译呢?
尝试
MEX CXXFLAGS ="$CXXFLAGST-STD= C++ 11"SimeLoEngExpL.CPP
在不直接运行matlab的情况下(如使用以下github repo:mex-it)交替构建您的mex文件
我的测试表明,正如另一位反应者推测的那样,
这是没有道理的,但显然使用-STD= C++0X将起作用。我认为matlab预先做了一些检查,因为它不正式支持4.8,所以即使编译器也不接受它。有人能支持我吗?