メインコンテンツ

MATLAB コードによる C 共有ライブラリの作成

サポートされるプラットフォーム: Windows®、Linux®Mac

この例では、MATLAB® 関数を使用して C 共有ライブラリを作成する方法を説明します。MATLAB のライセンス コピーがターゲット システムにインストールされている必要はありません。

MATLAB での関数の作成

  1. MATLAB で、パッケージ化する MATLAB コードを調べます。

    この例では、MATLAB に付属している matrix フォルダーを作業フォルダーにコピーします。

    copyfile(fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix'),'matrix')

    作業フォルダー内の新しい matrix サブフォルダーに移動します。

  2. 関数 addmatrix.mmultiplymatrix.m、および eigmatrix.m を確認してテストします。

     addmatrix.m

    MATLAB コマンド プロンプトで、addmatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9]) と入力します。

    出力は以下のようになります。

     ans =
         2     8    14
         4    10    16
         6    12    18

     multiplymatrix.m

    MATLAB コマンド プロンプトで、multiplymatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9]) と入力します。

    出力は以下のようになります。

     ans =
        30    66   102
        36    81   126
        42    96   150

     eigmatrix.m

    MATLAB コマンド プロンプトで、eigmatrix([1 4 7; 2 5 8; 3 6 9]) と入力します。

    出力は以下のようになります。

     ans =
       16.1168
       -1.1168
       -0.0000
    

compiler.build.cSharedLibrary を使用した C 共有ライブラリの作成

  • 関数 compiler.build.cSharedLibrary を使用して C 共有ライブラリをビルドします。名前と値の引数を使用してライブラリ名を指定し、詳細な出力を有効にします。

    buildResults = compiler.build.cSharedLibrary(["addmatrix.m", ...
    "eigmatrix.m","multiplymatrix.m"], ...
    'LibraryName','libmatrix', ...
    'Verbose','on');

    compiler.build コマンドで名前と値の引数を使用して、追加オプションを指定できます。詳細については、compiler.build.cSharedLibrary を参照してください。

    compiler.build.Results オブジェクト buildResults には、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。

    ビルド関数により、現在の作業ディレクトリの libmatrixcSharedLibrary という名前のフォルダー内にファイルが生成されます。生成されるファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。

    メモ

    生成されたライブラリに MATLAB Runtime やインストーラーは含まれていません。buildResults オブジェクトを使用してインストーラーを作成するには、compiler.package.installer を参照してください。

C アプリケーションでの C 共有ライブラリの実装

C 共有ライブラリをパッケージ化した後、これを C アプリケーションから呼び出すことができます。C アプリケーション コードは共有ライブラリに含まれる関数を呼び出します。

  1. matlabroot\extern\examples\compilersdk\c_cpp\matrix または作業フォルダーにある matrix.c ファイルを見つけます。

     matrix.c

    このファイルをコピーして、C 共有ライブラリ (Windows の場合は libmatrix.libMac の場合は libmatrix.dylib、Linux の場合は libmatrix.so) を含むフォルダーに貼り付けます。

  2. MATLAB コマンド プロンプトで、matrix.c のコピー先のフォルダーに移動します。

  3. mbuild を使用して、アプリケーションをコンパイルしてリンクします。

    mbuild matrix.c libmatrix.<ext>
  4. アプリケーションを Linux システムまたは Mac システムで実行するには、まず MATLAB Runtime をライブラリ パスに追加しなければなりません。詳細については、デプロイ用の MATLAB Runtime ライブラリ パスの設定を参照してください。

  5. システムのコマンド プロンプトからアプリケーションを実行します。Windows の場合は、スラッシュをバックスラッシュ (\) に置き換えます。

    ./matrix
    The sum of the matrix with itself is: 
    2.00		8.00		14.00	 
    4.00		10.00		16.00	 
    6.00		12.00		18.00	 
     
    The product of the matrix with itself is: 
    30.00		66.00		102.00	 
    36.00		81.00		126.00	 
    42.00		96.00		150.00		 
     
    The eigenvalues of the original matrix are: 
    16.12		-1.12		-0.00

    メモ

    Linux システムまたは Mac システムでは、アプリケーションの実行権限を与える必要がある場合があります。

    chmod u+x matrix

参考

|

トピック