2017-05-28 11 views
1

Linuxを知っていますMatlabはmex用のgcc 4.9のみを公式サポートしています。異なるコンパイラを使用してLinux上でMatlab用のmexを作成します

LinuxのIntelコンパイラ(icc)をLinux上で動作させる方法や、最新のgccを入手する方法を知っている人はいますか?

これはMatlab(2015-2017)の最近のバージョンです。

+0

"このソフトウェアはAのみをサポートしていますが、どのようにBを作成できますか?" –

+1

MatlabのC++ APIを使用してMatlab環境の外部で** dll **ファイルをコンパイルしようとしたことがありますか? CMake、またはQTのようなIDEの下で成功しますか?もしあなたがあなたのコンパイラで成功しているのであれば、** Mex *のための良いチャンスがあります。参考までに、mexは特別な入力関数mexFunctionを持つdllです。そのゲートウェイ機能がない場合、calllibを使用して汎用DLLをロードする必要があります。私はcmakeでmexをコンパイルする方法に関してどこかを見たことを覚えています。 –

+0

OK見つかりました。この助けを願っています。 [MEXファイルのコンパイル](https://github.com/zchen24/matlab_example/wiki/Compile-MEX-File) –

答えて

0

私はあなたがC++プロジェクトについて話すことを前提としています。はい、gccの新しいバージョンで可能です。

  • supported compilersをチェックして、どのMatlabがどのgccバージョンを使用しているかを確認してください。
  • 新しいバージョンのgccに、プロジェクトのコンパイルとすべての依存関係のためにMatlabが作成したgccバージョンのABIバージョンを使用するように指示します。
  • Matlabに標準のC++ライブラリを/ usr/libに使用するように指示します。下位互換性があります。
  • 例のMatlab 2017bのためのgcc> 4.9.xと:

    • のMatlab 2017bが
    • のgcc 4.9.xはCXX ABI version 8
    • であなたのgccを使うと互換性があるGCC 4.9.xで構築されましたコンパイルフラグ-fabi-version=8あなたのmexファイルとすべての依存関係
    • シェル内matlab
    • へのコールの前にシェル内の
    関連する問題