ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

このページは前リリースの情報です。該当の英語のページはこのリリースで更新されています。このリリースの英語のドキュメンテーションを参照するには、言語設定を United States に変更してください。

MEX コマンドを使用したエンジン アプリケーションのコンパイル

エンジン アプリケーションをビルドおよび実行するための要件

エンジン アプリケーションを作成するには、オプション ファイルでアプリケーションをビルドし、実行時ライブラリ パスを設定します。以下のトピックでは、これらの一般的な要件について説明します。プラットフォーム固有の情報は、「Windows オペレーティング システムでのエンジン アプリケーションのビルドと実行」または「UNIX オペレーティング システムにおけるエンジン アプリケーションのビルドと実行」を参照してください。

エンジン オプション ファイルを使用したビルド

エンジン アプリケーションをコンパイルおよびリンクするには、関数 mex を使用します。MATLAB® は、開発ツールが必要とする一般的なコンパイル、プレリンク、およびリンク ステップに対応するコンパイラ固有のフラグを含む "オプション ファイル" を提供します。オプション ファイルの名前は、オペレーティング システムと使用するコンパイラとによって異なります。Windows® システムを使用している場合は、「Windows におけるエンジン オプション ファイル」を参照してください。UNIX® システムを使用している場合は、オプション ファイルは matlabroot/bin フォルダーの engopts.sh です。

ビルド コマンドの形式は次のとおりです。

mex('-f',fullfile(optionsPath,optionsName),fileName);

ここで、fileName は C/C++ または Fortran ソース ファイルの名前で、optionsPath および optionsName はオプション ファイルの絶対ファイル名の一部です。

または、オプション ファイルを現在の作業フォルダーにコピーし、次のようなコマンドを入力します。

mex -f optionsName fileName

実行時要件

実行時に、実行時ライブラリの Path 環境変数を設定して、オペレーティング システムに対し、MATLAB API 共有ライブラリが置かれている場所を指定します。詳細は、「Windows における実行時ライブラリ パスの設定」または「Linux および Macintosh における実行時ライブラリ パスの設定」を参照してください。

使用しているシステムに複数のバージョンの MATLAB がインストールされている場合、エンジン アプリケーションのビルドに使用するバージョンは、システムの Path 環境変数リストの最初になければなりません。そうなっていない場合、MATLAB は「Can't start MATLAB engine」を表示します。Path 変数の設定方法の詳細は、「Windows における実行時ライブラリ パスの設定」または「Linux および Macintosh における実行時ライブラリ パスの設定」を参照してください。

Windows オペレーティング システムでのエンジン アプリケーションのビルドと実行

次のトピックでは、エンジン アプリケーションを作成するために必要な情報を説明します。例としては、「Windows エンジンの例: engwindemo」を参照してください。

Windows におけるエンジン オプション ファイル

オプション ファイルの名前は *engmatopts.bat で、ここで * はコンパイラの名前とバージョンを表す文字列です。使用しているシステムでオプション ファイルを識別するには、以下を入力します。

dir(fullfile(matlabroot,...
  'bin',computer('arch'),'mexopts','*engmatopts.bat'))

mex.CompilerConfiguration オブジェクトの Name プロパティおよび Version プロパティを使ってオプション ファイルを選択できます。以下を入力します。

cc = mex.getCompilerConfigurations('any','supported');

たとえば、次のプロパティをもつ cc オブジェクトの場合、msvc90engmatopts.bat オプション ファイルを選択します。

Properties:
            Name: 'Microsoft Visual C++ 2008'
    Manufacturer: 'Microsoft'
        Language: 'C++'
         Version: '9.0'
        Location: 'c:\Program Files (x86)\Microsoft Visual Studio 9.0'
         Details: [1x1 mex.CompilerConfigurationDetails]

Windows における実行時ライブラリ パスの設定

Path 環境変数を次の MATLAB コマンドによって返されるパス文字列に設定します。

fullfile(matlabroot,'bin',computer('arch'))

Windows XP で環境変数を設定するには、[スタート][設定][コントロール パネル][システム] の順に選択します。[システムのプロパティ] ダイアログ ボックスが表示されます。[詳細設定] タブをクリックし、次に [環境変数] ボタンをクリックします。

[システム変数] パネルをスクロール ダウンして、Path 変数を探します。この Path 変数をクリックして強調表示し、[編集] ボタンをクリックして、[システム変数の編集] ダイアログ ボックスを開きます。パス文字列の最後にセミコロンを入力します。そして、MATLAB によって返される、上記の式により求められるパス文字列を入力します。[システム変数の編集] ダイアログ ボックスおよび残りのすべてのダイアログ ボックスで [OK] をクリックします。

COM サーバーとしての MATLAB ソフトウェアの登録

Windows オペレーティング システムでエンジン アプリケーションを実行するには、MATLAB を COM サーバーとして登録する必要があります。すべてのセッションでこの手順を実行して、必ず現在ご利用の MATLAB バージョンが登録されるようにします。古いバージョンを実行すると、登録されているバージョンが変わることがあります。バージョン番号が一致しない場合、MATLAB に「Can't start MATLAB engine」と表示されます。

手動で MATLAB をサーバーとして登録するには、以下を入力します。

cd(fullfile(matlabroot,'bin',computer('arch')))
!matlab /regserver

表示された MATLAB ウィンドウを閉じます。

Windows エンジンの例: engwindemo

ビルド プロセスを C の例 engwindemo.c を使用して検証します。

  1. ファイルを現在の作業フォルダーにコピーします。

    copyfile(fullfile(matlabroot,...
      'extern','examples','eng_mat','engwindemo.c'),...
      '.', 'f');
  2. 実行可能ファイルをビルドします。Microsoft® Visual C++® コンパイラを使用する場合は、「Windows におけるエンジン オプション ファイル」の説明に従って該当するオプション ファイルを選択します。Lcc コンパイラを選択した場合、以下を入力します。

    mex('-v', '-f', fullfile(matlabroot,...
      'bin','win32','mexopts','lccengmatopts.bat'),...
      'engwindemo.c');
  3. engwindemo.exe ファイルの現在の作業フォルダーを調べて、ビルドが実行されたことを確認します。

    dir engwindemo.exe
  4. MATLAB で例を実行します。

    !engwindemo

engwindemo アプリケーションの詳細は、「C アプリケーションからの MATLAB 関数の呼び出し」を参照してください。

UNIX オペレーティング システムにおけるエンジン アプリケーションのビルドと実行

次のトピックでは、エンジン アプリケーションの作成に必要な情報を説明します。例としては、「UNIX エンジンの例: engdemo」を参照してください。

UNIX のエンジン オプション ファイル

UNIX システムでは、オプション ファイルは以下になります。

engopts.sh

パスは以下になります。

fullfile(matlabroot,'bin')

Linux および Macintosh における実行時ライブラリ パスの設定

使用する UNIX コマンドおよび実行時ライブラリ パス設定の指定値は、シェルやシステム アーキテクチャによって異なります。次の表は、環境変数の名前 (envvar) およびその指定値 (pathspec) の一覧です。

オペレーティング システムenvvarpathspec

64 ビット版 Linux®

LD_LIBRARY_PATH

matlabroot/bin/glnxa64: matlabroot/sys/os/glnxa64

64 ビット版 Apple Macintosh (Intel®)

DYLD_LIBRARY_PATH

matlabroot/bin/maci64: matlabroot/sys/os/maci64

C シェル-  次のコマンドを使用してライブラリ パスを設定します。

setenv envvar pathspec

ボーン シェル-  次のコマンドを使用してライブラリ パスを設定します。

envvar = pathspec:envvar export envvar

UNIX エンジンの例: engdemo

ビルド プロセスを C の例 engdemo.c または C++ の例 engdemo.cpp を使用して検証します。

  1. engdemo.c など、プログラムのいずれかを現在の作業フォルダーにコピーします。

    copyfile(fullfile(matlabroot,...
      'extern','examples','eng_mat','engdemo.c'),...
      '.', 'f');
  2. 実行可能ファイルをビルドします。

    mex('-v', '-f', fullfile(matlabroot,...
      'bin','engopts.sh'),...
      'engdemo.c');
  3. engdemo アプリケーションの現在の作業フォルダーを調べて、ビルドが実行されたことを確認します。

    dir engdemo
  4. MATLAB で例を実行します。

    !engdemo

engdemo アプリケーションの詳細は、「C アプリケーションからの MATLAB 関数の呼び出し」を参照してください。

この情報は役に立ちましたか?