主要内容

clibgen.buildInterface

定義ファ▪▪ルなしでc++ラ▪▪ブラリへの▪▪ンタ▪フェ▪▪スを作成

説明

clibgen.buildInterface (InterfaceGenerationFiles= LibraryFiles)は,HeaderFilesおよびにより定義されたc++ラescブラリへのmatlab®@ @ @ @ @ @ @ @ @ @ @ @ @ @。

メモ

MATLABが自動的に定義できないライブラリ内のクラスコンストラクター,メソッド,データメンバーおよび関数はすべて破棄されます。欠落している機能を含めるには,関数clibgen.generateLibraryDefinitionおよび関数构建による2ステップのビルドワクフロを使用します。

インターフェイスファイルの名前は,プラットフォーム固有のファイル拡張子をもつ库名接口です。既定の設定では,库名HeaderFilesで指定したファ@ @ルの名前です。

Matlabでサポトされるc++コンパラが必要です。c++ライブラリのビルドに使用したものと同じコンパイラを使って,インターフェイスをビルドしなければなりません。

clibgen.buildInterface (InterfaceGenerationFiles金宝appSupportingSourceFiles=源文件)は,複数のヘッダーファイル,ソースファイル,および必要な場合は,共有ライブラリファイルにより定義されたライブラリ用です。

clibgen.buildInterface (InterfaceGenerationFilesは,HeaderFilesにより完全に定義されたラ▪▪ブラリに対する▪▪ンタ▪フェ▪▪スを作成します。MATLABでサポートされている任意の C++ コンパイラを選択してインターフェイスをビルドできます。

ラ超市超市ブラリに共有ラ超市超市ブラリファ超市超市ルが含まれている場合,引数を指定しなければなりません。

clibgen.buildInterface (___名称=值。このオプションは,前述の構文のすべての入力引数の組み合わせで使用できます。これらの引数の使用に関する詳細にいては,clibgen.generateLibraryDefinitionを参照してください。

すべて折りたたむ

school.hppヘッダファルを,書き込み可能なフォルダにコピします。

拷贝文件(fullfile (matlabroot,“外来的”“例子”“cpp_interface”“school.hpp”),“。”“f”

@ @ @ @ @ @ @ @ @ @ @ @ @ @schoolInterface.dllをビルドします。出力のパス名には,選択したフォルダ,が反映されています。

clibgen.buildInterface (“school.hpp”
为clib包'school'构建接口文件'schoolInterface.dll'。接口文件'schoolInterface.dll'内置在文件夹'C:\Users\MATLAB\school'中。要使用该库,请将接口文件文件夹添加到MATLAB路径。addpath('C:\Users\MATLAB\school') 1结构需要进一步定义才能包含在接口中。使用clibgen。generateLibraryDefinition提供定义。

目录リンクをクリックして▪▪ンタ▪▪フェ▪▪スをパスに追加します。

ラ电子邮箱ブラリを読み込んで,クラスのヘルプを表示します。

帮助clib.school.Person
Person表示c++类的Person。

ラ@ @ブラリ内のヘルプを表示します。

帮助clib.school

この機能を,ヘッダ専用のHPPファル总结(defineschool)コマンドの出力と比較します。この▪▪ンタ▪フェ▪▪スには,次が含まれていません。

函数string clib.school.getName(clib.school.Person)

入力引数

すべて折りたたむ

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @字符串配列、文字ベクトル,または文字ベクトルのcell配列として指定します。現在のフォルダまたはMATLABのパスにない場合、引数にはファイルの絶対パスまたは相対パスが含まれます。詳細については、関数clibgen.generateLibraryDefinitionInterfaceGenerationFiles引数を参照してください。

例:“sample.hpp”

デ,タ型:字符|字符串|细胞

共有ラ▪▪ブラリファ▪▪ル名。字符串配列、文字ベクトル,または文字ベクトルのcell配列として指定します。引数と共に使用します。ラ电子邮箱ブラリが,InterfaceGenerationFiles引数および金宝appSupportingSourceFiles引数で指定されたファesc escルにより完全に定義されている場合を除いて,この値が必要です。詳細にいては,関数clibgen.generateLibraryDefinition引数を参照してください。

たとえば,次のステ,トメントをWindows®で実行すると,myLib.libを使用してC: \ myLib \sampleInterface.dllが作成され,現在のフォルダ,のサブフォルダ,样本に書き込まれます。

clibgen.buildInterface (“sample.hpp”、图书馆=“C: \ myLib \ myLib.lib”

デ,タ型:字符|字符串|细胞

C/ c++ソスファル。字符串配列、文字ベクトル,または文字ベクトルのcell配列として指定します。名前と値の引数金宝appSupportingSourceFilesと共に使用します。サポトされているファイル拡張子は. c. cpp. cxxです。現在のフォルダーまたはMATLABのパスにない場合,引数にはファイルの絶対パスまたは相対パスが含まれます。サポトソスファルにはc / c++コドが含まれていなければなりません。

詳細にいては,ヒントの"ラ▪▪ブラリ内のファ▪▪ル"を参照してください。

Cソ,スファ,ルのビルドに,いては,CLinkageを参照してください。

ライブラリがヘッダーファイルおよびc++ソースファイルにより完全に定義されている場合,コンパイル済みライブラリファイルは必要ありません。

例:“与”

デ,タ型:字符|字符串|细胞

名前と値の引数

引数のオプションのペアをName1 = Value1,…,以=家として指定します。ここで的名字は引数名で,价值は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021aより前では,コンマを使用してそれぞれの名前と値を区切り,的名字を引用符で囲みます。

例:clibgen.buildInterface(“myHeader.hpp”,库=“myHeader.lib OutputFolder =“C: \工作”);

含まれるヘッダファルのフォルダ。字符串配列、文字ベクトル,または文字ベクトルのcell配列として指定します。IncludePathの各値は,ヘッダファルのコンパル中に含めるフォルダへの絶対パス名でなければなりません。

さまざまなフォルダ内のヘッダファルの# includeステトメントがメンヘッダファルに含まれている場合は,IncludePath引数を使用してこれらのパスを指定します。

デ,タ型:字符|字符串|细胞

生成される定義ファ▪▪ルのフォルダ▪▪名。字符串スカラまたは文字ベクトルとして指定します。たとえば,次のステ,トメントはWindowsのC: \ \到了头工作myHeaderInterface.dllを作成します。

clibgen.buildInterface (“myHeader.hpp”OutputFolder =“C: \工作”

デ,タ型:字符|字符串|细胞

生成されたンタフェスパッケジ名。字符串スカラまたは文字ベクトルとして指定します。1つのヘッダー ファイルから作成されたインターフェイスの場合、既定値はヘッダー名です。複数のヘッダー ファイルの場合は、パッケージ名を有効な MATLAB 名として指定しなければなりません。たとえば、次のステートメントは、現在のフォルダーのサブフォルダーmylibmylibInterfaceラ▪▪ブラリファ▪▪ルを作成します。

clibgen.buildInterface ([“h1.hpp”“h2.hpp”), PackageName =" mylib "

デ,タ型:字符|字符串|细胞

生成メッセ,ジの表示オプション。数値または逻辑1真正的)または0)として指定します。真正的の場合,clibgen.buildInterfaceはンタフェスの作成中に生成メッセジをコマンドウィンドウに表示します。たとえば,次のステ,トメントは,h1Interfaceラaapl . cer .ラaapl . cer . cerh1に作成し,メッセ,ジをコマンドウィンドウに表示します。

clibgen.buildInterface (“h1.hpp”Verbose = true)

詳細にいては,サポトされていない型にいてのメッセジを参照してください。

デ,タ型:逻辑

オブジェクトポ▪▪ンタ▪▪の形状指定子。数値または逻辑1真正的)または0)として指定します。TreatObjectPointerAsScalar真正的の場合,関数は形状1として指定してラブラリ内のすべてのオブジェクトポンタをスカラとして扱います。それ以外の場合,オブジェクトポ。

R2019bで導入されました。

デ,タ型:逻辑

常量文字ポ转换器ンタ转换器の形状とmatlab型指定子。数値または逻辑1真正的)または0)として指定します。TreatConstCharPointerAsCString真正的の場合,関数はMLTYPE字符串形状nullTerminatedとして指定し,ラ常量文字ポaapl . exe文字ポaapl . exeをnullで終了するCの文字列として扱います。それ以外の場合,matlab型および常量文字ポ▪▪ンタ▪▪の形状は不明です。サポトされているポインターの型は次のとおりです。

  • Const char *

  • Const wchar_t *

  • Const char16_t *

  • 常量char32_t *

デ,タ型:逻辑

ヘッダファルを解析する際に使用するマクロ定義のリスト。空、スカラstring,またはスカラ,stringの行ベクトルとして指定します。マクロ名には1 ~ 9,a - z、a - z,および' _ 'の文字が含まれ,先頭を数字にすることはできません。

デ,タ型:字符串

ヘッダファルを解析する際に使用するマクロのキャンセルのリスト。空、スカラstring,またはスカラ,stringの行ベクトルとして指定します。マクロ名には1 ~ 9,a - z、a - z,および' _ 'の文字が含まれ,先頭を数字にすることはできません。

デ,タ型:字符串

非オブジェクトc++配列を返す方法を指定するオプション。数値または逻辑1真正的)または0)として指定します。ReturnCArrays真正的の場合,関数はc++配列をMATLAB clib配列型(clib.array。*)に変換します。の場合,関数はc++配列をネescティブmatlab配列に変換します。

デ,タ型:逻辑

C++ファC++ファC++ルからドキュメンテC++ションを生成するオプション。数値または逻辑1真正的)または0)として指定します。GenerateDocumentationFromHeaderFiles真正的の場合,関数はmatlab医生コマンドを使用してc++ファルのコメントから表示用のドキュメンテションを生成します。の場合,関数はc++コメントを無視し,MATLABのドキュメンテーションおよびc++型のマッピングのみを生成します。

詳細にいては,C++ラブラリに対するmatlabンタスのヘルプテキストのパブリッシュを参照してください。

デ,タ型:逻辑

. hヘッダファルを解析およびビルドする方法を指定するオプション。数値または逻辑1真正的)または0)として指定します。

CLinkage真正的の場合,関数はInterfaceGenerationFiles引数内の. hヘッダファルをcヘッダファルとして扱います。Cヘッダファルは生成されたンタフェスコド内の外来的“C”ブロックに含められます。これによりCソースファイルまたはCライブラリに対してリンクする際に名前マングリングの問題が生じなくなります。

以下により定義されているラ▪▪ブラリの▪▪ンタ▪フェ▪▪スを作成する際にCLinkage真正的に設定します。

  • Cヘッダファルおよびラブラリファル。

  • Cヘッダファルおよびソスファル。

  • CPPファescルとcファescルの組み合わせ。

CLinkageの場合,関数は. hヘッダファルをCPPファルとして扱います。Cへの依存関係があるCPPファルからンタスを作成する際には,既定(CLinkage)を使用します。この場合,cファ。

  • Cヘッダファルの場所を指すIncludePath

  • Cソスファルを指す金宝appSupportingSourceFiles

  • Cコンパ▪▪ル済みラ▪▪ブラリファ▪▪ル. lib. dll所以,または. dylibを指す

clibgen.generateLibraryDefinition引数でcファルを使用する方法を示した例にいては,ヒントの"ラ电子邮箱ブラリ内のファ电子邮箱ル"を参照し,CLinkageを検索してください。

デ,タ型:逻辑

インターフェイスをビルドするために使用されるコンパイラフラグに追加するコンパイラフラグのリスト。字符串配列,文字ベクトル,または文字ベクトルの单元格配列として指定します。関数は,フラグを検証することなくコンパ。

詳細にいては,C++ラブラリンタフェスのビルドと内容の確認を参照してください。

例:clibgen.generateLibraryDefinition(“A.hpp”、“AdditionalCompilerFlags”、“化c + + 20”)

デ,タ型:字符|字符串|细胞

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @字符串配列,文字ベクトル,または文字ベクトルの单元格配列として指定します。関数は,フラグを検証することなくリンカ,に直接渡します。

詳細にいては,C++ラブラリンタフェスのビルドと内容の確認を参照してください。

デ,タ型:字符|字符串|细胞

制限

  • 一部のロケール設定では非ASCII文字がサポートされていないため,フォルダー名とファイル名にはこれらの文字を使用しないでください。ロケルの詳細にいては,国際化に向けたロケ,ル設定の概念を参照してください。

代替機能

2ステップのビルドプロセス

clibgen.buildInterfaceの代わりに,関数clibgen.generateLibraryDefinitionおよび関数构建を使用して▪▪ンタ▪▪フェ▪▪スで欠落している機能を定義します。

詳細にいては,C++ラブラリンタフェスのビルドと内容の確認を参照してください。

バ,ジョン履歴

R2019aで導入