メインコンテンツ

MinGW -w64 コンパイラ

MinGW-w64 コンパイラを使用して、MEX 関数、C++ ライブラリに対する MATLAB® インターフェイス、スタンドアロンの C/C++ または Fortran の MATLAB エンジンおよび MAT ファイル アプリケーションをビルドできます。詳細については、"MATLAB Support for MinGW-w64 C/C++/Fortran Compiler" を参照してください。

MinGW-w64 コンパイラのインストール

コンパイラをインストールするには、アドオン エクスプローラーを使用します。

  • MATLAB [ホーム] タブの [環境] セクションで [アドオン] をクリックします。

  • MinGW を検索します。

詳細については、アドオンの取得と管理を参照してください。

yprime.c の例のビルド

yprime.c の例をビルドすることで、MinGW® コンパイラをテストできます。ソース ファイルを書き込み可能なフォルダーにコピーします。

copyfile(fullfile(matlabroot,"extern","examples","mex","yprime.c"),".","f")

MinGW コンパイラのみがシステムにインストールされている場合は、mex コマンドによって MinGW が自動的に選択されます。次の手順に進んでください。しかし、複数の C または C++ コンパイラがある場合は、mex -setup を使用して MinGW を選択します。

mex -setup

MEX 関数をビルドします。

mex yprime.c

MATLAB は、MEX 関数のビルドにどのコンパイラが使用されたかを示す、"~ でビルドしています" というメッセージを表示します。

関数を実行します。

yprime(1,1:4)

詳細については、C/C++ MEX ファイルを MinGW -w64 でコンパイルする際のトラブルシューティングと制限を参照してください。

MinGW インストール フォルダーにスペースを含めない

MinGW は、パス名にスペースを含む場所にはインストールしないでください。たとえば、次は使用しないでください。

C:\Program Files\mingw-64

代わりに次を使用してください。

C:\mingw-64

MinGW コンパイラを使用するために MEX ファイルを更新

MATLAB でサポートされる別のコンパイラでビルドされた MEX ソース ファイルがある場合、MinGW コンパイラでビルドするためにはコードの変更が必要になることがあります。以下に例を示します。

  • Microsoft® Visual Studio® で生成されたライブラリ (.lib) ファイルは、MinGW と互換性がありません。

  • 関数 mexErrMsgIdAndTxt を C++ MEX ファイルから使用して例外がスローされ、メモリ リークが発生した場合、オブジェクトのクリーンアップはできません。

  • MinGW でコンパイルされた C++ MEX ファイルにキャッチされていない例外が存在すると、MATLAB がクラッシュする原因となります。

  • 大量のデータを含む変数をもつ MEX ファイルは、コンパイラがメモリ不足となるため、コンパイルできません。

参考

トピック