MinGW -w64 コンパイラ
MinGW-w64 コンパイラを使用して、MEX ファイル、C++ ライブラリに対する MATLAB® インターフェイス、スタンドアロンの MATLAB エンジンおよび MAT ファイル アプリケーションをビルドできます。詳細については、"MATLAB Support for MinGW-w64 C/C++ 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 ファイルは、コンパイラがメモリ不足となるため、コンパイルできません。