ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.updateBuildInfo

ビルド情報オブジェクト RTW.BuildInfo の更新

説明

coder.updateBuildInfo('addCompileFlags',options) は、ビルド情報オブジェクトにコンパイラ オプションを追加します。

coder.updateBuildInfo('addLinkFlags',options) は、ビルド情報オブジェクトにリンク オプションを追加します。

coder.updateBuildInfo('addDefines',options) は、ビルド情報オブジェクトにプリプロセッサ マクロ定義を追加します。

coder.updateBuildInfo(___,group) は、後で参照するためグループ名を options に割り当てます。

coder.updateBuildInfo('addLinkObjects',filename,path) は、ビルド情報オブジェクトにファイルからリンク オブジェクトを追加します。

coder.updateBuildInfo('addLinkObjects',filename,path,priority,precompiled) は、リンク オブジェクトがプリコンパイルされているかどうかを示します。

coder.updateBuildInfo('addLinkObjects',filename,path,priority,precompiled,linkonly) は、オブジェクトがリンクされるか、単独でリンク目的で使用される前にビルドされるかどうかを示します。オブジェクトがビルドされる場合、オブジェクトがプリコンパイルされるかどうかを示します。

coder.updateBuildInfo(___,group) は、後で参照するためグループ名をリンク オブジェクトに割り当てます。

coder.updateBuildInfo('addNonBuildFiles',filename) は、ビルド情報オブジェクトに非ビルド関連ファイルを追加します。

coder.updateBuildInfo('addSourceFiles',filename) は、ビルド情報オブジェクトにソース ファイルを追加します。

coder.updateBuildInfo('addIncludeFiles',filename) は、ビルド情報オブジェクトにインクルード ファイルを追加します。

coder.updateBuildInfo(___,path) は、指定したパスのファイルを追加します。

coder.updateBuildInfo(___,path,group) は、後ほど参照するためグループ名をファイルに割り当てます。

coder.updateBuildInfo('addSourcePaths',path) は、ビルド情報オブジェクトにソース ファイル パスを追加します。

coder.updateBuildInfo('addIncludePaths',path) は、ビルド情報オブジェクトにインクルード ファイル パスを追加します。

coder.updateBuildInfo(___,group) は、後で参照するためグループ名をパスに割り当てます。

すべて折りたたむ

関数 func のコード生成中にコンパイラ オプション -Zi および -Wall を追加します。

func の MATLAB® コード内の任意の場所に、以下の行を追加します。

coder.updateBuildInfo('addCompileFlags','-Zi -Wall');

codegen コマンドを使用して、func のコードを生成します。コード生成レポートを開きます。

codegen -config:lib -launchreport func 

関数 calc_factorial のコード生成中に、ソース ファイルをプロジェクトのビルド情報に追加します。

  1. C 関数 factorial を宣言するヘッダー ファイル fact.h を記述します。

     double factorial(double x);

    fact.h は、ヘッダー ファイルとして生成コードに含まれます。このように含めることで、関数が呼び出される前に宣言されるようになります。

    ファイルを現在のフォルダーに保存します。

  2. factorial の定義を含む C ファイル fact.c を記述します。factorial は入力の階乗を計算します。

    #include "fact.h"
          
          double factorial(double x)
          {
              int i;
              double fact = 1.0;
              if (x == 0 || x == 1) {
                 return 1.0;
             } else {
                 for (i = 1; i <= x; i++) {
                     fact *= (double)i;
                 }
                 return fact;
             }
         }
         
    

    fact.c は、コード生成中にソース ファイルとして使用されます。

    ファイルを現在のフォルダーに保存します。

  3. 外部 C 関数 factorial を呼び出すために coder.ceval を使用する MATLAB 関数 calc_factorial を記述します。

    coder.updateBuildInfo をオプション 'addSourceFiles' を指定して使用して、ソース ファイル fact.c をビルド情報に追加します。coder.cinclude を使用して、ヘッダー ファイル fact.h を生成コードに含めます。

    function y = calc_factorial(x) %#codegen
    
      coder.cinclude('fact.h');
      coder.updateBuildInfo('addSourceFiles', 'fact.c');
    
      y = 0;
      y = coder.ceval('factorial', x);
  4. codegen コマンドを使用して、calc_factorial のコードを生成します。

     codegen -config:dll -launchreport calc_factorial -args 0

関数 func のコード生成中に、リンク オブジェクト LinkObj.lib をビルド情報に追加します。この例では、リンク オブジェクト LinkObj.lib をローカル フォルダー (たとえば c:\Link_Objects) に保存しておかなければなりません。

func の MATLAB コード内の任意の場所に、以下の行を追加します。

libPriority = '';
libPreCompiled = true;
libLinkOnly = true;
libName = 'LinkObj.lib';
libPath = 'c:\Link_Objects';
coder.updateBuildInfo('addLinkObjects', libName, libPath, ...
     libPriority, libPreCompiled, libLinkOnly);

codegen コマンドを使用して func の MEX 関数を生成します。コード生成レポートを開きます。

codegen -launchreport func 

関数 adder のコード生成中に、インクルード パスをビルド情報に追加します。パスに存在するヘッダー ファイル adder.h を含めます。

ヘッダー ファイルが現在のフォルダーにない場合に、それらを含めるには以下の方法を使用します。

  1. C 関数 mysum の宣言を含むヘッダー ファイル mysum.h を記述します。

    double mysum(double, double);

    これを c:\coder\myheaders などのサブフォルダーに保存します。

  2. 関数 mysum の定義を含む C ファイル mysum.c を記述します。

    #include "mysum.h"
    
    double mysum(double x, double y)
     { 
      return(x+y);
     }
     
    

    これを現在のフォルダーに保存します。

  3. パス c:\coder\myheaders をビルド情報に追加する MATLAB 関数 adder を記述します。

    coder.cinclude を使用して、ヘッダー ファイル mysum.h を生成コードに含めます。

    function y = adder(x1, x2) %#codegen
       coder.updateBuildInfo('addIncludePaths','c:\coder\myheaders');
       coder.updateBuildInfo('addSourceFiles','mysum.c'); 
         %Include the source file containing C function definition
       coder.cinclude('mysum.h');
       y = 0;
       if coder.target('MATLAB')
          % This line ensures that the function works in MATLAB 
            y = x1 + x2;
       else
           y = coder.ceval('mysum', x1, x2);
        end
    end
  4. codegen コマンドを使用して、adder のコードを生成します。

    codegen -config:lib -launchreport adder -args {0,0}

入力引数

すべて折りたたむ

ビルド オプション。文字ベクトルまたは string スカラーとして指定します。値はコンパイル時の定数でなければなりません。

先行する引数によって、options はプロジェクトのビルド情報に追加される、関連するビルド オプションを指定します。

先行する引数options の値
'addCompileFlags'コンパイラ オプション
'addLinkFlags'リンク オプション
'addDefines'プリプロセッサ マクロ定義

関数はオプションをオプション ベクトルの最後に追加します。

例: coder.updateBuildInfo('addCompileFlags','-Zi -Wall')

ユーザー定義グループの名前。文字ベクトルまたは string スカラーとして指定します。値はコンパイル時の定数でなければなりません。

group オプションは、グループ名を 2 番目の引数のパラメーターに割り当てます。

先行する引数2 番目の引数group によって名づけられたパラメーター
'addCompileFlags'optionsコンパイラ オプション
'addLinkFlags'optionsリンク オプション
'addLinkObjects'filenameリンク可能なオブジェクトを含むファイルの名前
'addNonBuildFiles'filename非ビルド関連ファイルの名前
'addSourceFiles'filenameソース ファイルの名前
'addSourcePaths'pathソース ファイル パスの名前

group を使用して、次のことができます。

  • 特定のパラメーターの使用をドキュメント化する。

  • 複数のパラメーターを 1 つのグループとしてまとめて取得または適用する。

ファイル名。文字ベクトルまたは string スカラーとして指定します。値はコンパイル時の定数でなければなりません。

先行する引数によって、filename はプロジェクトのビルド情報に追加される、関連するファイルを指定します。

先行する引数filename で指定されるファイル
'addLinkObjects'リンク可能なオブジェクトを含むファイル
'addNonBuildFiles'非ビルド関連ファイル
'addSourceFiles'ソース ファイル

関数はファイル名をファイル名ベクトルの最後に追加します。

例: coder.updateBuildInfo('addSourceFiles', 'fact.c')

相対パス名。文字ベクトルまたは string スカラーとして指定します。値はコンパイル時の定数でなければなりません。

先行する引数によって、path はプロジェクトのビルド情報に追加される、関連するパス名を指定します。関数はパスをパス名ベクトルの最後に追加します。

先行する引数path で指定されるパス
'addLinkObjects'リンク可能なオブジェクトへのパス
'addNonBuildFiles'非ビルド関連ファイルへのパス
'addSourceFiles', 'addSourcePaths'ソース ファイルへのパス

相対パスは、"ビルド フォルダー" から始まります。関数 foo がフォルダー C:\myCode に含まれ、以下を使用して MEX コードを生成している場合、

codegen foo -report

ビルド フォルダーは C:\myCode\codegen\mex\foo になります。ビルド フォルダーからのパスを記述したり、コードを生成する現在の作業フォルダーからのパスを記述したりできます。START_DIR マクロを使用して現在の作業フォルダーを参照します。たとえば、ソース ファイルが C:\myCode\mySrcDir に含まれ、C:\myCode からコードを生成するとします。次の例のようにパスを記述します。

例: coder.updateBuildInfo('addSourceFiles','fact.c','..\..\..\mySrcDir')

例: coder.updateBuildInfo('addSourceFiles','fact.c','$(START_DIR)\mySrcDir')

リンク オブジェクトの優先順位。

この機能は、複数のリンク オブジェクトが追加されるときにのみ適用されます。現在、すべての coder.updateBuildInfo ステートメントに追加できるのは 1 つのリンク オブジェクト ファイルのみです。そのためこの機能は使用できません。

後続の引数を使用するには、プレースホルダー引数として '' を含めます。

リンク オブジェクトがプリコンパイルされているかどうかを示す変数で、論理値として指定されます。値はコンパイル時の定数でなければなりません。

リンク オブジェクトが事前にビルドされ、コンパイルとリンク処理が迅速になっていて、指定した場所に存在する場合、true を指定します。そうでない場合、MATLAB Coder™ ビルド プロセスによってビルド フォルダーにリンク オブジェクトが作成されます。

linkonlytrue に設定されている場合、この引数は無視されます。

データ型: logical

オブジェクトがリンク目的にのみ使用されるべきかどうかを示す変数で、論理値として指定されます。値はコンパイル時の定数でなければなりません。

MATLAB Coder ビルド プロセスが、指定のリンク オブジェクトをビルドするための makefile にルールをビルドまたは生成しないようにする場合、true を指定します。代わりに、最終的な実行可能ファイルをリンクする場合にはプロセスにオブジェクトを含めるだけです。そうでなければ、リンク オブジェクトをビルドするためのルールが makefile に追加されます。

ソース ファイルを使用できないリンク オブジェクトを組み込む場合にこの引数を使用できます。

linkonlytrue に設定されている場合、precompiled の値は無視されます。

データ型: logical

R2013b で導入