このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
clibgen.generateLibraryDefinition
C++ ライブラリの定義ファイルを作成
構文
説明
clibgen.generateLibraryDefinition(
は、InterfaceGenerationFiles
,'Libraries',LibraryFiles
)InterfaceGenerationFiles
および LibraryFiles
で定義された C++ ライブラリへの MATLAB® インターフェイスの生成に使用する MATLAB ライブ コード定義ファイルを作成します。clibgen.generateLibraryDefinition
の呼び出しの例については、ヒントの「ライブラリに含めるファイル」を参照してください。
定義ファイルの名前は define
です。このファイルの使用方法の詳細については、C++ ライブラリに対する MATLAB インターフェイスの定義を参照してください。既定の設定では、libName
.mlxlibName
は InterfaceGenerationFiles
で指定した最初のファイルの名前です。インターフェイス生成ファイルを複数指定する場合は、名前と値のペアの引数 PackageName
を使用する必要があります。
インターフェイスを作成するには、build
メソッドを使用します。MATLAB でサポートされる C++ コンパイラが必要です。C++ ライブラリのビルドに使用したものと同じコンパイラを使って、インターフェイス ライブラリをビルドしなければなりません。ライブラリがソース ファイルで完全に定義される場合 (共有ライブラリ ファイルを使用しない場合)、サポートされている任意の C++ コンパイラを選択してインターフェイス ライブラリをビルドできます。
clibgen.generateLibraryDefinition(
は、複数のヘッダー ファイル、ソース ファイル、および必要な場合は共有ライブラリ ファイルで定義されるライブラリに対する定義ファイルを作成します。InterfaceGenerationFiles
,'Libraries',LibraryFiles
,'SupportingSourceFiles',SupportingSourceFiles
)
clibgen.generateLibraryDefinition(
は、InterfaceGenerationFiles
)InterfaceGenerationFiles
で完全に定義されるライブラリに対する定義ファイルを作成します。
ライブラリに共有ライブラリ ファイルが含まれている場合、'Libraries'
引数を指定しなければなりません。
clibgen.generateLibraryDefinition(
は、1 つ以上の名前と値のペアの引数を使用してファイルを作成します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。InterfaceGenerationFiles
,___,Name,Value
)
例
入力引数
制限
LibraryDefinition
オブジェクトdefinelibName
を MAT ファイルに保存することはサポートされていません。一部のロケール設定では非 ASCII 文字がサポートされていない場合があるため、フォルダー名とファイル名にはこれらの文字を使用しないでください。ロケールの詳細については、国際化に向けたロケール設定の概念を参照してください。
ヒント
ライブラリ定義ファイルを作成し直すには、名前と値の引数
OverwriteExistingDefinitionFiles
を true に設定してclibgen.generateLibraryDefinition
を呼び出します。このオプションを使用すると、MATLAB により、ファイルがそれらのファイルに対して行った編集も含めて削除されます。トラブルシューティングの詳細については、Troubleshooting C++ Library Definition Issuesを参照してください。
ライブラリにヘッダー ファイル、CPP ソース ファイル、および共有ライブラリ ファイルの組み合わせが含まれる場合があります。次の表に、ライブラリを定義するファイルの種類に応じた
clibgen.generateLibraryDefinition
の引数の設定方法を示します。ライブラリに含めるファイル
引数
InterfaceGenerationFiles
名前と値の引数
"Libraries"
名前と値の引数
"SupportingSourceFiles"
Windows の単一のヘッダー ファイルとインポート ライブラリ ファイル。
A.hpp
フォルダー
C:\Documents\MATLAB\
にあるA.lib
インポート ライブラリ ファイル
"A.hpp"
"C:\Documents\MATLAB\A.lib"
Linux のヘッダー ファイルと共有オブジェクト ファイル。
A.hpp
フォルダー
~/MATLAB/
にあるA.so
"A.hpp"
"~/MATLAB/A.so"
macOS のヘッダー ファイルとダイナミック共有ライブラリ ファイル。
A.hpp
フォルダー
$home/Documents/MATLAB
にあるA.dylib
"A.hpp"
"$home/Documents/MATLAB/A.dylib"
ヘッダー ファイルと
.cpp
ソース ファイルで完全に定義。ライブラリ ファイルなし。ヘッダー ファイル
A.hpp
ソース ファイル
A.cpp
"A.hpp"
"A.cpp"
複数のヘッダー ファイルとソース ファイルおよび共有ライブラリ ファイル。
A
という名前のインターフェイスを作成。ヘッダー ファイル
A.hpp
およびB.hpp
ソース ファイル
A.cpp
C:\Documents\MATLAB\
にある共有ライブラリ ファイルB.lib
["A.hpp","B.hpp"]
a"C:\Documents\MATLAB\B.lib"
"A.cpp"
ヘッダーのみのライブラリ。ライブラリがヘッダー ファイルで完全に定義され、共有ライブラリ ファイルがない。
A.hpp
"A.hpp"
ライブラリが
.CPP
ファイルで完全に定義され、共有ライブラリ ファイルがない。A.cpp
"A.cpp"
a Because you have multiple header files, you must set the
"PackageName"
name-value argument. For example, use the name"A"
. Then when you call library functionfunctionname
from MATLAB, the syntax isclib.A.
functionname
.