主要内容

ビルド中のラ@ @ブラリの位置および名前付けの制御

プリコンパイル済みのライブラリ,プリコンパイルされていないライブラリ,およびモデル参照ライブラリを生成する場合,コンフィギュレーションパラメーターを使用してライブラリの位置とライブラリ名を制御できます。これらのパラメ,タ,は,モデルのビルド中に生成されたmakefileの値を制御します。

  • ツールチェーンアプローチを使用するビルドプロセスの場合,TargetPreCompLibLocationコンフィギュレションパラメタを使用して生成されたラブラリの位置を制御します。

  • テンプレ,トmakefileアプロ,チを使用するビルドプロセスで,TargetPreCompLibLocationコンフィギュレ,ションパラメ,タ,を使用して生成されたラ,TargetLibSuffixコンフィギュレションパラメタを使用して生成されたラブラリ名を制御します。

ラブラリ制御パラメタ

ラブラリ制御パラメタを使用して,次を行います。

  • ブロックセットラ@ @ブラリや金宝app®编码器™ブロックラ▪▪ブラリなどのプリコンパ▪▪ル済みラ▪▪ブラリの位置を指定します。一般的に,ターゲットはこれらのライブラリのバージョンをクロスコンパイルし,ターゲット固有のフォルダーに置きます。

  • ラ▪▪ブラリファ▪▪ル名に適用される接尾辞を制御します(たとえば,_target.aまたは_target.lib)。

ターゲットはシステムターゲットファイル(31)内のパラメーターを選択コールバックに設定することができます。以下に例を示します。

mytarget_select_callback_handler(varargin) hDig=varargin{1};hSrc =变长度输入宗量{2};slConfigUISetVal(hDig, hSrc, 'TargetPreCompLibLocation',…“c: \ mytarget \ precomplibs”);slConfigUISetVal(hDig, hSrc, 'TargetLibSuffix',…“_target.library”);

TMFは対応する拡張ト,クンをもっています。

| > EXPAND_LIBRARY_LOCATION < | | > EXPAND_LIBRARY_SUFFIX < |

代わりに,関数set_paramへの呼び出しを使用することもできます。以下に例を示します。

set_param(模型、“TargetPreCompLibLocation”……“c: \ mytarget \ precomplibs”);

メモ

モデルが参照モデルを含んでいる場合は,使オプションUSE_MDLREF_LIBPATHSを使用して,参照モデルの使用するライブラリをビルドフォルダーにコピーするかどうかを制御することができます。詳細にいては,モデル参照ラ@ @ブラリの位置を参照してください。

ツールチェーンアプローチのライブラリファイルタイプの特定

モデルビルドの后缀および扩展を選択するのにTargetLibSuffixコンフィギュレ,ションパラメ,タ,の値は使用しません。

ツールチェーンアプローチでは,最終バイナリ名はツールチェーン定義のビルドツールの説明で提供されるmodelnamecompilernameおよび扩展で構成されます。

model_compilername扩展

ツールチェーン定義のビルドツールの説明からスタティックライブラリファイル名の拡張子を識別できます。既定のルチェ次の手順に従います。

  1. 既定の。たとえば,次のコマンドを入力します。

    tc_name = code .make. getdefaulttoolchain ()
  2. 既定の。たとえば,次のコマンドを入力します。

    tc = code .make. gettoolchaininfofromregistry (tc_name)
  3. 。たとえば,次のコマンドを入力します。

    tool_archiver = tc.getBuildTool(“文档”);
  4. 拡張子を取得します。たとえば,次のコマンドを入力します。

    ext_archiver = tool_archive . getfileextension (“静态库”);

メモ

TargetLibSuffixパラメーターを設定しない場合,テンプレートmakefileおよびツールチェーンアプローチは同じスタティックライブラリファイル名扩展を生成します。

プリコンパ▪▪ル済みのラ▪▪ブラリの位置を指定

TargetPreCompLibLocationコンフィギュレ,ションパラメ,タ,を使用して以下を実行します。

  • rtwmakecfg.mファ▪▪ル内で指定されたプリコンパ▪▪ル済みのラ▪▪ブラリの位置をオ▪▪バ▪▪ラ▪ド(詳細に▪▪いては,生成されたmakefileをrtwmakecfg。m APIを使用してカスタマaaplズを参照)

  • 製品ライブラリ(たとえば,DSP系统工具箱™製品)のターゲット固有のバージョンのプリコンパイルと配布

ブロックセットラ@ @ブラリや金宝app仿真软件编码器ブロックラ超市超市ブラリなどのプリコンパ超市超市ル済みのラ超市超市ブラリの場合,rtwmakecfg.m内で指定される位置は一般的にブロックセットや金宝app仿真软件编码器製品に固有の位置です。コードジェネレーターは,この場所にライブラリが存在することを前提にして,ビルド中にライブラリをリンクします。

カスタムのタ,ゲットなどのアプリケ,ションによっては,rtwmakecfg.m内で指定される位置ではなく,ターゲット固有か他の代わりの位置にプリコンパイル済みのライブラリを置くほうがいい場合があります。カスタムターゲットの場合,コードジェネレーターでは,ターゲット固有のクロスコンパイラでライブラリが作成され,そのライブラリがターゲット固有の場所に配置される必要があります。ターゲットでサポートされるライブラリは,ビルドプロセス中に使用できるように,ターゲット固有の位置にコンパイルして配置します。

その選択コ,ルバック内でTargetPreCompLibLocationパラメ,タ,を設定することができます。パラメタ用に指定するパスはラブラリの場所に対する完全修飾の絶対パスでなければなりません。相対パスはサポ,トされません。以下に例を示します。

slConfigUISetVal(hDlg, hSrc, 'TargetPreCompLibLocation',…“c: \ mytarget \ precomplibs”);

代わりに,関数set_paramを呼び出してパラメ,タ,を設定することもできます。以下に例を示します。

set_param(模型、“TargetPreCompLibLocation”……“c: \ mytarget \ precomplibs”);

Makefile生成中に,ビルドプロセスはト,クンをrtwmakecfg.mファ@ @ルからの場所で置き換えます。たとえば,rtwmakecfg.mファ▪▪ルのラ▪▪ブラリ名が“rtwlib”の場合,テンプレ,トmakefileビルドアプロ,チはト,クンを以下から拡張します。

LIBS += |>EXPAND_LIBRARY_LOCATION<|\|>EXPAND_LIBRARY_NAME<|\ _target.library

これを次のように変更します。

LIBS += c:\mytarget\precomplibs\rtwlib_target.library

既定の設定では,TargetPreCompLibLocationは空の文字ベクトルです。ビルドプロセスは、トークンを置換するためにrtwmakecfg.mの場所を使用します。

モデル参照ラ@ @ブラリの位置

ビルドプロセスは. . / slprj grt / /子/ sub_rtwlib.libのようなパスをMODELREF_LINK_LIBSに割り当てます。ビルドプロセスはリンク時にそのパスを使用してラ▪▪ブラリファ▪▪ルへのアクセスを取得します。

接尾辞をラ▪▪ブラリファ▪▪ル名に制御

モデルビルドのテンプレ,トmakefileアプロ,チで,TargetLibSuffixコンフィギュレーションパラメーターを使用して,ライブラリ名に適用される接尾辞を制御します(たとえば,_target.lib_target.a)。指定の接尾辞スキ,ムはピリオド(.)を含まなければなりません。TargetLibSuffixを以下のラ@ @ブラリに適用することができます。

  • rtwmakecfg.mAPI内で指定されるようなタゲットが依存するラブラリ。TargetLibSuffixを使用して,rtwmakecfgAPIから設定されるプリコンパイル済みライブラリとプリコンパイルされていないライブラリの接尾辞を変更することができます。詳細にいては,生成されたmakefileをrtwmakecfg。m APIを使用してカスタマaaplズを参照してください。

    この例では,タ,ゲットはその選択コ,ルバック内でパラメ,タ,を設定することができます。以下に例を示します。

    slConfigUISetVal(hDlg, hSrc, 'TargetLibSuffix',…“_target.library”);

    代わりに,関数set_paramへの呼び出しを使用することもできます。以下に例を示します。

    set_param(模型、“TargetLibSuffix”、“_target.library”);

    TMFからmakefileへの変換中に,ビルドプロセスはト,クン| > EXPAND_LIBRARY_SUFFIX < |を指定の接尾辞に置き換えます。rtwmakecfg.m内で指定されるラ@ @ブラリ名が“rtwlib”である場合は,tmfはそれを以下のように拡張します。

    Libs += |> expand_library_location <|\|> expand_library_name <|\|> expand_library_suffix <|

    これを次のように変更します。

    LIBS += c:\mytarget\precomplibs\rtwlib_target.library

    既定の設定では,TargetLibSuffixは空の文字ベクトルに設定されています。この例では,ビルドプロセスはト,クン| > EXPAND_LIBRARY_SUFFIX < |を空の文字ベクトルに置き換えます。

  • モデル参照を使用して作成されたモデルラ@ @ブラリ。これらの例では,関連makefile変数は| > EXPAND_LIBRARY_SUFFIX < |ト,クンを必要としません。代わりに,ビルドプロセスは暗黙的にTargetLibSuffixを含みます。たとえば,refmodel1refmodel2という名前の参照モデルをもtopmodelという名前の最上位モデルの場合,最上位モデルのTMFは以下から拡張されます。

    Modellib = |> Modellib <| modelref_link_libs = |> modelref_link_libs <|

    これを次のように変更します。

    MODELLIB = topmodellib_target。library MODELREF_LINK_LIBS = \ refmodel1_rtwlib_target。图书馆refmodel2_rtwlib_target.library

    既定の設定では,TargetLibSuffixパラメ,タ,は空の文字ベクトルです。この例では,ビルドプロセスは,Windows®ホスト上の. libとUNIX®ホスト上ののファ▪▪ル拡張子を使用して,これらの3▪▪のト▪クン用の既定の接尾辞を選択します。モデル参照ラesc escブラリの場合は,既定の接尾辞は_rtwlibも含みます。たとえば,Windows ホスト上では、拡張された makefile 値は以下のようになります。

    MODELLIB = topmodellib。lib MODELREF_LINK_LIBS = refmodel1_rtwlib。自由refmodel2_rtwlib.lib