compiler.build.cppSharedLibrary
構文
説明
compiler.build.cppSharedLibrary(
は、FunctionFiles
)FunctionFiles
で指定された MATLAB® ファイルを使用して C++ 共有ライブラリを作成します。この関数を使用する前に、サポートされている C++ コンパイラをインストールしてください。
compiler.build.cppSharedLibrary(
は、名前と値の引数を 1 つ以上使用してオプションが指定された C++ 共有ライブラリを作成します。オプションには、インターフェイス API、ライブラリ名、出力ディレクトリなどがあります。FunctionFiles
,Name,Value
)
compiler.build.cppSharedLibrary(
は、opts
)compiler.build.CppSharedLibraryOptions
オブジェクト opts
を使用してオプションが指定された C++ 共有ライブラリを作成します。名前と値の引数を使用して他のオプションを指定することはできません。
例
C++ ライブラリの作成
2 つの行列を追加する関数ファイルを使用して C++ 共有ライブラリを作成します。
MATLAB で、C++ ライブラリとしてデプロイする MATLAB 関数を見つけます。この例では、
にあるファイル matlabroot
\extern\examples\compilersdk\c_cpp\matrixaddmatrix.m
を使用します。
appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');
compiler.build.cppSharedLibrary
コマンドを使用して、C++ ライブラリをビルドします。
compiler.build.cppSharedLibrary(appFile);
ビルド関数により、現在の作業ディレクトリの addmatrixcppSharedLibrary
という名前のフォルダー内に以下のファイルが生成されます。
GettingStarted.html
— 共有ライブラリの統合に関する情報が含まれる HTML ファイル。includedSupportPackages.txt
— ライブラリに含まれるすべてのサポート ファイルをリストしたテキスト ファイル。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。readme.txt
— デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれる Readme ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。v2\generic_interface\readme.txt
— デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれる Readme ファイル。v2\generic_interface\magicsquare.ctf
— デプロイ可能なアーカイブが含まれるコンポーネント テクノロジー ファイル。
共有ライブラリを実装するには、C++ MATLAB データ API 共有ライブラリをサンプル アプリケーションとともに実装を参照してください。
C++ ライブラリのカスタマイズ
C++ ライブラリを作成し、名前と値の引数を使用してカスタマイズします。
この例では、
にあるファイル matlabroot
\extern\examples\compilersdk\c_cpp\matrixaddmatrix.m
を使用します。
appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');
以下のコードを addmatrixSample1.m
という名前のサンプル ファイルに保存します。
a1 = [1 4 7; 2 5 8; 3 6 9]; a2 = a1; a = addmatrix(a1, a2);
compiler.build.cppSharedLibrary
コマンドを使用して、C++ ライブラリをビルドします。名前と値の引数を使用してライブラリ名を指定し、サンプル ファイルを追加して、mwArray
インターフェイスを使用します。
compiler.build.cppSharedLibrary(appFile,'LibraryName','mwa_addmatrix',... 'SampleGenerationFiles','addmatrixSample1.m',... 'Interface','mwarray');
ビルド関数により、現在の作業ディレクトリの mwa_addmatrixcppSharedLibrary
という名前のフォルダー内に以下のファイルが作成されます。
samples\addmatrixSample1_mwarray.cpp
— C++ サンプル ドライバー ファイル。GettingStarted.html
— 共有ライブラリの統合に関する情報が含まれるファイル。includedSupportPackages.txt
— ライブラリに含まれるすべてのサポート ファイルをリストしたテキスト ファイル。mwa_addmatrix.cpp
— C++ ソース コード ファイル。mwa_addmatrix.def
— リンカーにモジュール情報を提供するモジュール定義ファイル。mwa_addmatrix.dll
— ダイナミックリンク ライブラリ ファイル。mwa_addmatrix.exports
— すべての非静的関数名が含まれるエクスポート ファイル。mwa_addmatrix.h
— C++ ヘッダー ファイル。mwa_addmatrix.lib
— インポート ライブラリ ファイル。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。readme.txt
— デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれる Readme ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
共有ライブラリを実装するには、C++ mwArray API 共有ライブラリを C++ サンプル アプリケーションとともに実装を参照してください。
オプション オブジェクトを使用した複数のライブラリの作成
compiler.build.CppSharedLibraryOptions
オブジェクトを使用して、複数の C++ ライブラリを作成します。
この例では、
にあるファイル matlabroot
\extern\examples\compilersdk\c_cpp\matrixaddmatrix.m
を使用します。
appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');
appFile
を使用して CppSharedLibraryOptions
オブジェクトを作成します。名前と値の引数を使用して共通の出力ディレクトリを指定し、デバッグ シンボルを有効にして、詳細な出力を有効にします。
opts = compiler.build.CppSharedLibraryOptions(appFile,... 'OutputDir','D:\Documents\MATLAB\work\CppLibraryBatch',... 'DebugBuild','on',... 'Verbose','on')
opts =
CppSharedLibraryOptions with properties:
Interface: 'matlab-data'
LibraryVersion: '1.0.0.0'
SampleGenerationFiles: {}
FunctionFiles: {'C:\Program Files\MATLAB\R2023b\extern\examples\compilersdk\c_cpp\addmatrix.m'}
DebugBuild: on
LibraryName: 'addmatrix'
AdditionalFiles: {}s+ AutoDetectDataFiles: ons+ ObfuscateArchive: offs+ SupportPackages: {'autodetect'}
Verbose: on
OutputDir: 'D:\Documents\MATLAB\work\CppLibraryBatch'
CppSharedLibraryOptions
オブジェクトを使用して C++ 共有ライブラリをビルドします。
compiler.build.cppSharedLibrary(opts);
同じオプションをもつ関数ファイル subtractmatrix.m
を使用して新しいライブラリを作成するには、ビルド関数を再度実行する前に、ドット表記を使用して既存の CppSharedLibrary
オブジェクトの FunctionFiles
引数を変更します。
opts.FunctionFiles = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','subtractmatrix.m'); compiler.build.cppSharedLibrary(opts);
FunctionFiles
引数を変更して再コンパイルすることにより、同じオプション オブジェクトを使用して複数のライブラリをコンパイルできます。
C++ ライブラリからのビルド情報の取得
C++ ライブラリを作成し、ビルド タイプ、コンパイル済みファイル、サポート パッケージ、およびビルド オプションに関する情報を compiler.build.Results
オブジェクトに保存します。
ファイル magicsquare.m
を使用してコンパイルします。
results = compiler.build.cppSharedLibrary('magicsquare.m')
results = Results with properties: BuildType: 'cppSharedLibrary' Files: {2×1 cell} IncludedSupportPackages: {} Options: [1×1 compiler.build.CppSharedLibraryOptions]
Files
プロパティには、v2
フォルダーおよび GettingStarted.html
へのパスが格納されます。
入力引数
FunctionFiles
— MATLAB 関数を実装するファイル
文字ベクトル | string スカラー | 文字ベクトルの cell 配列 | string 配列
MATLAB 関数を実装するファイル。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。ファイル パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。ファイルには .m
拡張子が必要です。
例: ["myfunc1.m","myfunc2.m"]
データ型: char
| string
| cell
opts
— C++ ライブラリのビルド オプション
compiler.build.CppSharedLibraryOptions
オブジェクト
C++ ライブラリのビルド オプション。compiler.build.CppSharedLibraryOptions
オブジェクトとして指定します。
名前と値の引数
オプションのペアの引数を Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定する必要がありますが、ペアの順序は考慮されません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'Verbose','on'
AdditionalFiles
— 追加ファイル
文字ベクトル | string スカラー | 文字ベクトルの cell 配列 | string 配列
C++ 共有ライブラリに含める追加ファイルとフォルダー。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
例: 'AdditionalFiles',["myvars.mat","data.txt"]
データ型: char
| string
| cell
AutoDetectDataFiles
— データ ファイルを自動的に含めるためのフラグ
'on'
(既定値) | on/off logical 値
データ ファイルを自動的に含めるためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、特定の関数 (load
やfopen
など) の入力として指定したデータ ファイルは自動的に共有ライブラリに含められます。このプロパティを
'off'
に設定した場合、データ ファイルはAdditionalFiles
プロパティを使用して共有ライブラリに追加する必要があります。
例: 'AutoDetectDataFiles','off'
データ型: logical
DebugBuild
— デバッグ シンボルを有効にするためのフラグ
'off'
(既定値) | on/off logical 値
デバッグ シンボルを有効にするためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) か 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、コンパイルされたライブラリにはデバッグ シンボルが含まれます。このプロパティを
'off'
に設定した場合、コンパイルされたライブラリにはデバッグ シンボルが含まれません。
例: 'DebugBuild','on'
データ型: logical
Interface
— インターフェイス API
'matlab-data'
(既定値) | 'mwarray'
インターフェイス API。次のいずれかのオプションとして指定します。
'matlab-data'
— MATLAB データ API を使用して共有ライブラリを生成します。'mwarray'
—mwArray
API を使用して共有ライブラリを生成します。
詳細については、C++ 共有ライブラリの API の選択を参照してください。
例: 'Interface','mwarray'
LibraryName
— C++ 共有ライブラリの名前
文字ベクトル | string スカラー
C++ 共有ライブラリの名前。文字ベクトルまたは string スカラーとして指定します。生成されたライブラリの既定の名前は、FunctionFiles
引数の最初のエントリです。
例: 'LibraryName','mymagic'
データ型: char
| string
ObfuscateArchive
— デプロイ可能なアーカイブを難読化するためのフラグ
'off'
(既定値) | on/off logical 値
デプロイ可能なアーカイブを難読化するためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) か 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、デプロイ可能なアーカイブのフォルダー構造およびファイル名はエンド ユーザーに対して難読化され、MATLAB ファイルに含まれているユーザー コードおよびデータはアーカイブ内のユーザー パッケージに配置されます。また、すべての.m
ファイルがパッケージ化の前に P ファイルに変換されます。このオプションは、-j
および-s
を指定してmcc
を使用するのと等価です。このプロパティを
'off'
に設定した場合、デプロイ可能なアーカイブは難読化されません。これは既定の動作です。
例: 'ObfuscateArchive','on'
データ型: logical
OutputDir
— 出力ディレクトリへのパス
文字ベクトル | string スカラー
ビルド ファイルが保存される出力ディレクトリへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
ビルド フォルダーの既定の名前は、ライブラリ名に cppSharedLibrary
を追加したものです。
例: 'OutputDir','D:\Documents\MATLAB\work\mymagiccppSharedLibrary'
データ型: char
| string
SampleGenerationFiles
— MATLAB サンプル ファイル
文字ベクトル | string スカラー | 文字ベクトルの cell 配列 | string 配列
ライブラリ内に含まれる関数のサンプル C++ ライブラリ ファイルを生成するために使用する MATLAB サンプル ファイル。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。ファイルには .m
拡張子が必要です。詳細と制限については、サンプル ドライバー ファイルの作成を参照してください。
例: 'SampleGenerationFiles',["sample1.m","sample2.m"]
データ型: char
| string
| cell
SupportPackages
— サポート パッケージ
'autodetect'
(既定値) | 'none'
| string スカラー | 文字ベクトルの cell 配列 | string 配列
含めるサポート パッケージ。次のオプションのいずれかとして指定します。
'autodetect'
(既定) — 依存関係の分析プロセスにより、必要なサポート パッケージが自動的に検出され、含められます。'none'
— サポート パッケージは含められません。このオプションを使用すると、ランタイム エラーの原因となる可能性があります。string スカラー、文字ベクトル、または文字ベクトルの cell 配列 — 指定されたサポート パッケージのみが含められます。インストールされている、または特定のファイルで使用されるサポート パッケージのリストを表示するには、
compiler.codetools.deployableSupportPackages
を参照してください。
例: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}
データ型: char
| string
| cell
Verbose
— ビルドの詳細を制御するためのフラグ
'off'
(既定値) | on/off logical 値
ビルドの詳細を制御するためのフラグ。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、MATLAB コマンド ウィンドウには、ビルド プロセス中のコンパイラ出力を示す進行状況情報が表示されます。このプロパティを
'off'
に設定した場合、コマンド ウィンドウには進行状況の情報は表示されません。
例: 'Verbose','on'
データ型: logical
出力引数
results
— ビルド結果
compiler.build.Results
オブジェクト
ビルド結果。compiler.build.Results
オブジェクトとして返されます。Results
オブジェクトには以下が含まれています。
'cppSharedLibrary'
であるビルド タイプ以下へのパス:
GettingStarted.html
v2
フォルダー (matlab-data
インターフェイスのみ)
(LibraryName
.dllmwArray
インターフェイスのみ)
(LibraryName
.libmwArray
インターフェイスのみ)
(LibraryName
.hmwArray
インターフェイスのみ)
含まれているサポート パッケージのリスト
ビルド オプション。
CppSharedLibraryOptions
オブジェクトとして指定
バージョン履歴
R2021a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)