ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

ファイルが 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 ファイルが互換性のないオプションでコンパイルされた

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 ファイルが型なしのデータ アクセス関数を呼び出している

詳細については、型付きデータ アクセスを参照してください。

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

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

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

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

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

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

関連するトピック