ビルド中のラ@ @ブラリの位置および名前付けの制御
プリコンパイル済みのライブラリ,プリコンパイルされていないライブラリ,およびモデル参照ライブラリを生成する場合,コンフィギュレーションパラメーターを使用してライブラリの位置とライブラリ名を制御できます。これらのパラメ,タ,は,モデルのビルド中に生成された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
コンフィギュレ,ションパラメ,タ,の値は使用しません。
ツールチェーンアプローチでは,最終バイナリ名はツールチェーン定義のビルドツールの説明で提供される
、modelname
およびcompilername
で構成されます。扩展
model_compilername
.扩展
ツールチェーン定義のビルドツールの説明からスタティックライブラリファイル名の拡張子を識別できます。既定のルチェ次の手順に従います。
既定の。たとえば,次のコマンドを入力します。
tc_name = code .make. getdefaulttoolchain ()
既定の。たとえば,次のコマンドを入力します。
tc = code .make. gettoolchaininfofromregistry (tc_name)
。たとえば,次のコマンドを入力します。
tool_archiver = tc.getBuildTool(“文档”);
拡張子を取得します。たとえば,次のコマンドを入力します。
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.m
API内で指定されるようなタゲットが依存するラブラリ。TargetLibSuffix
を使用して,rtwmakecfg
APIから設定されるプリコンパイル済みライブラリとプリコンパイルされていないライブラリの接尾辞を変更することができます。詳細にいては,生成された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
を含みます。たとえば,refmodel1
とrefmodel2
という名前の参照モデルをも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