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 のバージョン互換性を参照してください。