Ben*_*Uri 6 c++ matlab-deployment c++11
我有一段用C++ 11编写的代码,我想将其编译为GNU/Linux的MATLAB MEX文件的一部分.
问题是Linux上的MATLAB仅支持GCC 4.3(及更早版本),并且不支持编译我的C++ 11代码所需的GCC 4.7.
有可能解决这个问题吗?
是否可以通过使用GCC 4.7编译一些目标文件并使用GCC 4.3将它们链接到MEX文件来解决这个问题?
提前致谢!
如果您可以在4.3扩展中编写任何代码并进行编译,那么只需编写代码来编写您在4.7中编写和编译的共享对象.使用4.7 .so来完成所有c ++ 11工作,只需通过C接口将信息传递给它.您编写的4.3版本可以访问所有MATLAB互操作资料.
你也可以通过各种其他方式做到这一点,但这是最干净的.您不应该尝试将目标文件链接到4.3扩展名,因为您将访问两个不同版本的标准库(完全不同),并且您不能使用不同的布局/方法/等具有相同类的多个定义.你将与c ++的一个定义规则(ODR)作斗争.