C++ ライブラリ インターフェイスのビルドと内容の確認
メモ
ライブラリの機能が不足している場合、ライブラリにサポートされていない言語機能またはデータ型が含まれている可能性があります。詳細については、Verbose オプションを true に設定して clibgen.generateLibraryDefinition を実行してください。
ライブラリ定義ファイルからのビルド
関数 clibgen.generateLibraryDefinition を使用してライブラリ定義ファイルを作成した場合は、関数 build を使用します。たとえば、ライブラリ定義ファイルが definelibName の場合は、次を入力します。
build(definelibName) addpathlibName
ライブラリに機能を表示します。
summary(definelibName)
1 ステップのビルド
定義の必要なポインターや他の構成要素がライブラリに含まれていない場合、定義ファイルを作成する必要はありません。C++ ヘッダー ファイルおよびライブラリ ファイルを指定して、clibgen.buildInterface を直接呼び出します。たとえば、ヘッダー ファイル header.hpp で定義されたライブラリ libName をビルドするには、次を入力します。
clibgen.buildInterface('header.hpp',Verbose=true)
addpath libNameC++ コンパイラ標準の指定
選択したコンパイラの既定の標準でサポートされない C++ 言語の構成要素がライブラリで使用されている可能性があります。詳細については、Visual Studio バージョン別の Microsoft C/C++ 言語準拠を参照してください。インターフェイスのビルドに使用する C++ コンパイラ標準を指定するには、名前と値の引数 AdditionalCompilerFlags を使用します。
clibgen.generateLibraryDefinition("A.hpp",AdditionalCompilerFlags=value)たとえば、次の表は C++17 標準用の value を示しています。
AdditionalCompilerFlags=Value
| プラットフォーム | コンパイラ a | C++17 標準を使用する場合の値 |
|---|---|---|
| Windows® | Microsoft Visual C++ 2019 |
|
| Windows | MinGW64 Compiler (C++) |
|
| Windows | Intel Parallel Studio XE 2020 for C++ with Microsoft Visual Studio 2019 |
|
| Linux® | g++ |
|
| macOS | Xcode |
|
a For information about supported compilers, see Supported and Compatible Compilers. | ||
コンパイラとリンカーのフラグの指定
インターフェイスをビルドする関数に特定のコンパイラとリンカーのフラグを渡すには、clibgen.generateLibraryDefinition または clibgen.buildInterface で名前と値の引数 AdditionalCompilerFlags または AdditionalLinkerFlags を使用します。これらのフラグは、関数では検証されずにコンパイラとリンカーに渡されます。パブリッシャーはフラグによるビルド プロセスへの影響を知る必要があります。
インターフェイスの内容の確認
MATLAB® は、一部の C++ コメント (ある場合) をヘッダー ファイルとソース ファイルからインターフェイスに自動的にコピーします。この内容は変更または置き換えることができます。詳細については、C++ ライブラリに対する MATLAB インターフェイスのヘルプ テキストのパブリッシュを参照してください。
関数 doc を使用して、ライブラリの機能のヘルプを表示するリンクを提供するドキュメンテーションをシステムの Web ブラウザーで開きます。たとえば、ライブラリ libname に含められたクラスを確認するには、次を入力します。
doc clib.libnameクラスのリンクをクリックします。MATLAB は新しいタブを開きます。クラス ClassName のヘルプを表示するために [コンストラクターの概要] リンクをクリックして、内容を確認します。[Property Summary] のリンクをクリックします。clib.libname.ClassName メソッドの [メソッドの概要] を精査します。
デバッグ用のインターフェイスのビルド
詳細については、Debug C++ Library from MATLAB Interfaceを参照してください。
参考
build | clibgen.LibraryDefinition