このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
C++ 開発環境の設定
MATLAB® 関数を C++ アプリケーション内に統合するには、C++ 開発環境を設定する必要があります。
MATLAB デスクトップを使用して、デプロイ可能な MATLAB 関数を作成し、C++ アプリケーション コードを記述し、その 2 つを統合できます。MATLAB デスクトップ環境はプラットフォームに依存せずに使用できます。
Windows® システムでは、Microsoft® Visual Studio® を開発環境として使用できます。
前提条件
デプロイする MATLAB 関数を記述します。
関数
compiler.build.cppSharedLibrary
またはライブラリ コンパイラ アプリを使用して、MATLAB 関数を含むデプロイ可能な C++ 共有ライブラリを作成します。
C++ 開発用の MATLAB デスクトップの設定 (Windows、Linux、macOS)
MATLAB コマンド プロンプトで次を実行して、C++ アプリケーションで使用する C++ コンパイラを構成します。
mbuild -setup
mbuild
ユーティリティは、C++ コンパイラを構成することに加え、MATLAB Compiler SDK™ で生成された C++ 共有ライブラリを統合するアプリケーションをコンパイルおよびリンクします。そのオプション ファイルでは、アプリケーションのビルドに使用するコンパイラとリンカーの設定を指定します。MATLAB エディターを使用して、C++ アプリケーション コードを作成します。関数
compiler.build.cppSharedLibrary
またはライブラリ コンパイラ アプリを使用して、デプロイ可能な C++ 共有ライブラリを MATLAB 関数から作成します。関数
mbuild
を使用して、MATLAB Compiler SDK C++ 共有ライブラリに対して C++ アプリケーション コードをコンパイルおよびリンクします。mbuild <cppApplicationSourceCode>.cpp -v (MATLAB Data API) mbuild <cppApplicationSourceCode>.cpp <compilerSDKGeneratedLibrary>.lib -v (mwArray API)
C++ 開発用の Microsoft Visual Studio の設定 (Windows のみ)
Visual Studio で新しい C++ プロジェクトを作成します。C++ コンソール アプリケーションを作成する場合は [コンソール アプリ] を選択します。それ以外の場合は、該当するプロジェクト タイプを選択します。
[ソリューション エクスプローラー] でプロジェクト ノードを右クリックして [プロパティ] を選択し、プロジェクトのプロパティにアクセスします。
プロジェクト プロパティ ページで [プラットフォーム] が
[x64]
に設定されていることを確認します。プロジェクト プロパティ ページの左ペインの [C/C++]、[全般] で、[追加のインクルード ディレクトリ] フィールドに次のディレクトリを追加します。
MATLAB で設定している場合:
C:\Program Files\MATLAB\R2023b\extern\include
MATLAB Runtime で設定している場合:
C:\Program Files\MATLAB\MATLAB Runtime\R2023b\extern\include
mwArray
API を使用して作業している場合は、生成されたヘッダー ファイル<compilerSDKGeneratedLibrary>.h
を含めるディレクトリも追加する必要があります。[リンカー]、[全般] で、[追加のライブラリ ディレクトリ] フィールドに次のディレクトリを追加します。
MATLAB で設定している場合:
C:\Program Files\MATLAB\R2023b\extern\lib\win64\microsoft
MATLAB Runtime で設定している場合:
C:\Program Files\MATLAB\MATLAB Runtime\R2023b\extern\lib\win64\microsoft
mwArray
API を使用して作業している場合は、生成されたヘッダー ファイル<compilerSDKGeneratedLibrary>.h
を含めるディレクトリも追加する必要があります。[リンカー]、[入力] で、[追加の依存ファイル] フィールドに次のライブラリを追加します。
MATLAB データ API を使用している場合は次を追加します。
delayimp.lib libMatlabCppSharedLib.lib libMatlabDataArray.lib
mwArray
API を使用している場合は次を追加します。<compilerSDKGeneratedLibrary>.lib mclmcrrt.lib
MATLAB データ API を使用している場合は、[リンカー]、[入力] で、[DLL の遅延読み込み] フィールドに次のライブラリを追加します。
libMatlabDataArray.dll
C++ アプリケーション コードにヘッダー ファイルを含めます。
MATLAB データ API を使用している場合は次を追加します。
#include "MatlabCppSharedLib.hpp"
mwArray
API を使用している場合は次を追加します。#include "<compilerSDKGeneratedLibrary>.h"
Visual Studio で設定をテンプレートとしてエクスポート (オプション)
必要なすべての構成と依存関係を含めてプロジェクトを設定したら、将来それを再利用するためにテンプレートとしてエクスポートできます。その手順は次のとおりです。
Visual Studio でプロジェクトを開き、メイン メニューから [プロジェクト]、[テンプレートのエクスポート] に進みます。[テンプレートのエクスポート ウィザード] が開きます。
作成するテンプレートのタイプとして [プロジェクト テンプレート] を選択し、[次へ] をクリックします。
テンプレートとしてエクスポートする現在のプロジェクトを選択し、[次へ] をクリックします。
テンプレートの名前、説明、アイコン、プレビュー イメージを指定します。テンプレートの出力場所も選択できるほか、テンプレートを Visual Studio に自動的にインポートするかどうかを決めることもできます。それらの詳細を入力したら、[完了] をクリックします。
プロジェクト テンプレートの .zip
ファイルが Visual Studio で作成されます。テンプレートを自動的にインポートするように選択した場合は、このテンプレートが [新しいプロジェクト] ダイアログの [Visual C++]、[マイ テンプレート] で使用可能になります。
テンプレートにはプロジェクト ファイルと構成がすべて含まれますが、外部依存関係は含まれないことに注意してください。
Visual Studio での環境変数の設定
この手順は、必ず MATLAB コード アーカイブ (.ctf
ファイル) を生成した後にのみ実行してください。これは、MATLAB コード アーカイブを使用する C++ アプリケーションの実行時にアプリケーションでアーカイブの場所を識別するために必要になります。CPPSHARED_BASE_CTF_PATH
環境変数を設定し、.ctf
ファイルが格納されたディレクトリを指すように設定することで、この場所が認識されるようにすることができます。
Visual Studio で次の手順に従います。
[ソリューション エクスプローラー] でプロジェクトを右クリックして [プロパティ] を選択し、[プロパティ ページ] ダイアログを開きます。
左側の列で [構成プロパティ] の下の [デバッグ] を選択します。
右側の列で [環境] フィールドを見つけ、次のように入力します。
CPPSHARED_BASE_CTF_PATH=<path to directory containing .ctf file>
[適用] をクリックしてから、[OK] をクリックしてダイアログを閉じます。
この手順により、Visual Studio でアプリケーションを実行またはデバッグするときに必ず環境変数が設定されるようになります。
他の開発環境
他の C++ 開発環境を使用するには、コンパイル時に含める追加のファイルとライブラリを把握する必要があります。最初に、MATLAB で関数 mbuild
を使用し、詳細モードを使用して C++ アプリケーションをコンパイルすることを推奨します。これにより、他の開発環境で含める必要があるすべてのファイルが表示されます。
関連ファイルの場所
Windows | MATLAB
MATLAB Runtime
|
Linux® | MATLAB
MATLAB Runtime
|
macOS | MATLAB
MATLAB Runtime
|
環境のテスト
C++ アーティファクトの生成に使用された MATLAB のインストール バージョンまたは MATLAB Runtime に対して C++ アプリケーションをテストできます。ただし、デプロイ時には MATLAB Runtime を使用する必要があります。