Main Content

MEX API の非互換のトラブルシューティング

ファイルが MEX ファイルではない

詳細については、MEX プラットフォームの互換性を参照してください。

MEX ファイルが互換性のないオプションでコンパイルされた

オブジェクト ファイルを MEX 関数に組み込む際には、各ファイルが必ず同じバージョンの C または Fortran 行列 API でビルドされるようにしてください。

このエラーは、コンパイルのみを表す -c オプションを使用して 2 つ以上のファイルを別々にコンパイルしてから、MEX 関数にビルドしようとしたときに発生します。以下に例を示します。

mex -c function1.c -largeArrayDims
mex -c function2.c -R2018a
mex function1.o function2.o

MEX ファイルが 1 つの API でコンパイルされ、別の API でリンクされた

このエラーは、コンパイルのみを表す -c オプションを使用してファイルをコンパイルしてから、非互換バージョンの API とリンクしたときに発生します。たとえば、次のコマンドを使用して MEX ファイルをビルドした場合、関数の実行時にエラーが発生します。

mex -c function1.c -largeArrayDims
mex function1.o -R2018a

MATLAB データ API を使用した C++ MEX ファイルが互換性のないオプションでコンパイルされた

C++ 用の MATLAB データ APIの関数を使用して C++ MEX ファイルを作成すると、次のビルド コマンドでエラーが発生します。

mex function.cpp -R2017b

代わりに次のコマンドを使用してください。

mex function.cpp

カスタムビルドの MEX ファイルが現在のリリースでサポートされていない

MATLAB® は MEX ファイル内にバージョン番号を見つけることができません。この MEX ファイルは、バージョン番号を必要とする API の関数を使用しています。詳細については、https://www.mathworks.com/matlabcentral/answers/377799-compiling-mex-files-without-the-mex-commandを参照してください。

MEX ファイルが旧式のオプションでコンパイルされた

ソース コードは、インターリーブされた複素数 API と互換性があります。最良の結果を得るため、mex -largeArrayDims ビルド オプションを、-R2018a オプションに置き換えてください。

MEX ファイルが型なしのデータ アクセス関数を呼び出している

詳細については、C MEX ファイルでの型付きデータ アクセスを参照してください。

MEX ファイルが 32 ビット関数を呼び出している

詳細については、64 ビット API を使用するように MEX ファイルをアップグレードを参照してください。

MEX ファイルにエントリ ポイントが含まれていない

詳細については、MEX プラットフォームの互換性を参照してください。

現在のリリースでサポートされていない MATLAB リリースで MEX ファイルがビルドされた

詳細については、MEX のバージョン互換性を参照してください。

関連するトピック