1

最新の Matlab MEX ファイルをコンパイルするために gcc 3.4 と 4.4 を使用する場合のトレードオフ/懸念は何ですか?

Fedora v16 の MATLAB (R2012a) で使用するために、市販の C++ コード ( kdtree ) を MEX ファイルとしてコンパイルする必要があります。クラスターのデフォルトである最新の GCC コンパイラー (4.6.x) を使用してシンボルの問題に遭遇しました。また、システム管理者は、Matlab が公式にサポートしているコンパイラである gcc 4.4.x を利用可能にすることに非常に抵抗しています。(理由はわかりません)代わりに、彼はレガシー(2006年頃)のgcc 3.4.6コンパイラを使用することを提案しています。私の質問は、古い gcc コンパイラを使用する際にトレードオフや問題がある場合はどうなるかということです。パフォーマンス?64ビット対応? スレッドセーフ (または実際には複数の並列呼び出し)? 等?

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 に答える