Main Content

無効な MEX ファイル エラー

MEX ファイルで参照されるすべての .dll ファイルが MATLAB® で見つからない場合、その MEX ファイルを読み込むことはできません。MATLAB は次のエラー メッセージを表示します。

Invalid MEX-file mexfilename:
The specified module could not be found.

ここで mexfilename は依存関係のエラーがあるモジュールです。このモジュールでは、依存ライブラリを見つけることができません。このエラーを解決するには、依存ライブラリの名前を検索し、それらがシステム上に、かつシステム パス上に存在しているかを確認します。ライブラリの依存関係を調べるには、次を行います。

  • Windows® システムでは、Dependency Walker ユーティリティを Web サイト (https://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 サイト