メインコンテンツ

C++ 開発環境の設定

MATLAB® 関数を C++ アプリケーションに統合するには、C++ 開発環境を設定する必要があります。

  • MATLAB デスクトップを使用して、MATLAB 関数を作成し、C++ アプリケーション コードを記述し、その 2 つを統合できます。MATLAB デスクトップ環境は、複数のプラットフォームで使用できます。

  • Microsoft® Visual Studio®Xcode などの統合開発環境 (IDE) を使用することもできます。

C++ 開発用の MATLAB デスクトップの設定 (WindowsLinux、および macOS)

  1. MATLAB コマンド プロンプトで、C++ アプリケーションで使用するために C++ コンパイラを構成します。

    mex -setup -client engine C++

  2. MATLAB エディターで C++ アプリケーション コードを作成します。

  3. mex 関数を使用して、C++ アプリケーション コード mySourceCode.cpp をコンパイルしてリンクします。

     mex -client engine mySourceCode.cpp

C++ 開発用の Microsoft Visual Studio の設定 (Windows のみ)

  1. Visual Studio で新しい C++ プロジェクトを作成します。C++ コンソール アプリケーションを作成する場合は、[コンソール アプリ] を選択します。それ以外の場合は、該当するプロジェクト タイプを選択します。

  2. [ソリューション エクスプローラー] でプロジェクト ノードを右クリックし、[プロパティ] を選択して、プロジェクトのプロパティにアクセスします。

  3. プロジェクトのプロパティ ページで、[プラットフォーム][x64] に設定されていることを確認します。

  4. プロジェクト プロパティ ページの左側のペインで、[C/C++][全般] にある [追加のインクルード ディレクトリ] フィールドに次のディレクトリを追加します。

    matlabroot\extern\include
  5. [リンカー][全般] で、[追加のライブラリ ディレクトリ] フィールドに次のディレクトリを追加します。

    matlabroot\extern\lib\win64\microsoft
  6. [リンカー][入力] で、[追加の依存ファイル] フィールドに次のライブラリを追加します。

    libMatlabEngine.lib;
    libMatlabDataArray.lib;
  7. C++ 用の MATLAB データ API を使用する場合は、[リンカー][入力] で、[DLL の遅延読み込み] フィールドに次のライブラリを追加します。

    libMatlabDataArray.dll

  8. C++ アプリケーション コードに適切なヘッダー ファイルをインクルードします。すべてのエンジン アプリケーションで次の命令が必要です。

    #include "MatlabEngine.hpp"
    C++ 用の MATLAB データ API を使用する場合は、次の命令を含めます。
    #include "MatlabDataArray.hpp"
    厳密に型指定されたインターフェイスを使用する場合は、matlab.engine.typedinterface.generateCPP 関数によって作成されたヘッダー ファイルをインクルードします。

Visual Studio での設定テンプレートのエクスポート (オプション)

必要なすべての構成と依存関係を指定してプロジェクトを設定したら、テンプレートとしてエクスポートして将来再利用できます。テンプレートをエクスポートするには、次の手順に従います。

  1. Visual Studio でプロジェクトを開いた状態で、メイン メニューから [プロジェクト][テンプレートのエクスポート] に移動します。[テンプレートのエクスポート ウィザード] が開きます。

  2. 作成するテンプレートの型として [プロジェクト テンプレート] を選択し、[次へ] をクリックします。

  3. テンプレートとしてエクスポートする現在のプロジェクトを選択し、[次へ] をクリックします。

  4. テンプレート名、説明、アイコン、およびプレビュー イメージを指定します。テンプレートの出力場所を選択し、テンプレートを自動的に Visual Studio にインポートするかどうかを決定することもできます。これらの詳細の入力が完了したら、[完了] をクリックします。

Visual Studio では、プロジェクト テンプレートは ZIP ファイルとして作成されます。自動的にテンプレートをインポートすることを選択した場合、テンプレートは、[新しいプロジェクト] ダイアログ ボックスの [Visual C++][マイ テンプレート] で使用できるようになります。

テンプレートにはすべてのプロジェクト ファイルと構成が含まれますが、外部依存関係は含まれません。

その他の開発環境

Xcode などの別の IDE を使用してソース コードを記述するには、次のライブラリおよびインクルード ファイルを使用して C++ エンジン アプリケーションをビルドするためにご使用の環境を設定します。最初に、MATLAB の mex 関数を使用して詳細モードで C++ アプリケーションをコンパイルすることをお勧めします。このモードでは、他の開発環境に含める必要があるすべてのファイルが表示されます。

ヘッダー ファイルには、関数宣言と、API ライブラリでアクセスする関数のプロトタイプが含まれています。これらのヘッダー ファイルは matlabroot/extern/include フォルダーに存在し、Windows®macOS、および Linux® の各システムで共通です。C++ エンジン アプリケーションで次のヘッダー ファイルをインクルードします。

  • MatlabEngine.hpp — C++ 用の MATLAB エンジン API の定義

  • MatlabDataArray.hpp — C++ と MATLAB データとの間の汎用インターフェイスの定義

対応する以下のライブラリをリンクします。

  • libMatlabEngine — エンジン ライブラリ

  • libMatlabDataArray — MATLAB データ ライブラリ

これらのライブラリをリンクするには、ご使用のプラットフォームに基づいて開発環境のパスを指定します。次のパス指定では、matlabroot を、MATLAB matlabroot コマンドで返されたパスに置き換えます。

Windows ライブラリ

以下のパス指定では、compilermicrosoft または mingw64 に置き換えます。

  • エンジン ライブラリ — matlabroot\extern\lib\win64\compiler\libMatlabEngine.lib

  • MATLAB データ ライブラリ — matlabroot\extern\lib\win64\compiler\libMatlabDataArray.lib

macOS ライブラリ

macos は、maca64 (Apple シリコン搭載の macOS の場合) または maci64 (Intel® 搭載の macOS の場合) に置き換えます。

  • エンジン ライブラリ — matlabroot/extern/bin/macos/libMatlabEngine.dylib

  • MATLAB データ ライブラリ — matlabroot/extern/bin/macos/libMatlabDataArray.dylib

Linux ライブラリ

  • エンジン ライブラリ — matlabroot/extern/bin/glnxa64/libMatlabEngine.so

  • MATLAB データ ライブラリ — matlabroot/extern/bin/glnxa64/libMatlabDataArray.so

追加ライブラリ — pthread

たとえば、myEngineApp.cpp をビルドするには、matlabroot にある、該当するライブラリを使用します。

g++ -std=c++11 -I matlabroot/extern/include/ -L matlabroot/extern/bin/glnxa64/ 
    -pthread myEngineApp.cpp -lMatlabDataArray -lMatlabEngine

参考

トピック