Main Content

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

無効な MEX ファイル エラー

MEX ファイルで参照されるすべての .dll ファイルが MATLAB® で見つからない場合、その MEX ファイルを読み込むことはできません。たとえば、MEX ファイル A がシステム パス上にないライブラリ subA.dll に依存しているとします。フォルダー L:\mylibs\A.mexw64 を呼び出すと、MATLAB は以下を表示します。

Invalid MEX-file 'L:\mylibs\A.mexw64':
Missing dependent shared libraries
'subA.dll' required by 'L:\mylibs\A.mexw64'

共有ライブラリで必要なシンボルが見つからない場合、MATLAB は次のようなメッセージを表示します。

Invalid MEX-file 'L:\mylibs\A.mexw64':
Missing symbol 'q' in 'L:\mylibs\subA.dll' required by L:\mylibs\A.mexw64'

ライブラリの依存関係を調べるには、次を行います。

  • Windows® システムでは、Dependency Walker ユーティリティを Web サイト (http://www.dependencywalker.com) からダウンロードします。

  • Linux® システムでは、次を使用します。

    ldd -d libname.so
  • macOS システムでは、次を使用します。

    otool -L libname.dylib

ビルド時に MEX ファイルがリンクされる .dll ファイルの場合、その .dll ファイルは、システム パス上か、MEX ファイルと同じフォルダー内に存在しなければなりません。

MEX ファイルには、それ自体にリンクされていない追加ライブラリが必要となることがあります。明示的に読み込まれたこれらのライブラリのいずれかが見つからない場合、MEX ファイルの読み込みは妨げられなくとも、その正常な動作は妨げられます。ライブラリを読み込むコードは、これらのライブラリの検索に使用される検索パスを制御します。その検索パスには、MEX ファイルを含むフォルダーが含まれていない可能性があります。正しいインストール場所は、ライブラリのドキュメンテーションを参照してください。

失敗の原因としては、以下が考えられます。

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

  • コンパイラのランタイム ライブラリが見つからない。MEX ファイルをビルドしたものと同じコンパイラがシステムにない場合は、Visual C++® 再頒布可能パッケージについての詳細を、Microsoft® MSDN® の Web サイトで参照してください。

  • 特殊なランタイム ライブラリが見つからないか、インストールが正しくない。MEX ファイルまたはライブラリのベンダーにお問い合わせください。

関連するトピック

外部の Web サイト