1

使用 gcc 3.4 与 4.4 编译现代 Matlab MEX 文件有哪些权衡/顾虑?

我需要将一些现成的 C++ 代码 ( kdtree ) 编译为 MEX 文件,以便在 Fedora v16 下与 MATLAB (R2012a) 一起使用。我使用集群默认的最新 GCC 编译器 (4.6.x) 遇到了符号问题。并且系统管理员非常抗拒让Matlab官方支持的编译器gcc 4.4.x 可用。(不知道为什么)所以,他建议使用旧的(大约 2006 年)gcc 3.4.6 编译器。所以我的问题是,如果使用旧的 gcc 编译器有任何权衡或问题怎么办?表现?64位支持?线程安全(或真正的多个并行调用)?ETC?

4

1 回答 1

2

您主要错过了 c++11 功能的初步实现(包括标准化线程、可变参数模板等http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport)。只要两个编译器都生成与 MATLAB/Octave 兼容的 ABI 二进制文件,就没有任何特定于版本的安全问题。没有 c 编译器可以为您解决共享状态问题。性能会略有不同,但并不显着。在任何一个编译器版本中,我都确信您的代码会有更优化的实现。gcc 3.4 支持 64 位。

于 2012-06-04T16:50:00.480 回答