控件库在生成期间的位置和命名
在生成预编译、非预编译和模型引用库时,可以使用配置参数控制库的位置和库的名称。这些参数控制模型构建过程中生成的makefile中的值:
对于使用工具链方法的构建流程,可以使用
TargetPreCompLibLocation
配置参数。对于使用模板生成文件方法的构建流程,可以使用
TargetPreCompLibLocation
参数并控制生成的库名称TargetLibSuffix
配置参数。
库控制参数
使用库控件参数来:
指定预编译库的位置,例如块集库或金宝app®编码器™块库。通常,目标具有这些库的交叉编译版本,并将它们放在特定于目标的文件夹中。
控制应用于库文件名的后缀(例如,
_target.a
或_target.lib
).
目标可以设置内部参数的系统目标文件(STF)选择回调。例如:
函数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”);
请注意
如果您的模型包含引用的模型,您可以使用make选项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和工具链方法产生相同的静态库文件名
.看到自定义库文件后缀和文件类型(金宝app仿真软件编码器)。扩展
指定预编译库的位置
使用TargetPreCompLibLocation
配置参数为:
方法中指定的预编译库位置
rtwmakecfg.m
文件(见使用rtwmakecfg。m API自定义生成的makefile详情)预编译和分发特定于目标的产品库版本(例如,DSP系统工具箱™产品)
对于预编译库,例如块集库或金宝app仿真软件编码器块库中指定的位置rtwmakecfg.m
通常是特定于块集或金宝app仿真软件编码器产品。代码生成器期望库存在于此位置,并在构建期间链接到库。
对于某些应用程序,例如自定义目标,最好将预编译库定位在特定于目标的位置或其他替代位置,而不是定位在中指定的位置rtwmakecfg.m
.对于自定义目标,代码生成器期望特定于目标的交叉编译器创建库,并将库放在特定于目标的位置。编译并将目标支持的库放置在目标特定的位置,以便在构建过程金宝app中使用它们。
你可以设置TargetPreCompLibLocation
参数。为参数指定的路径必须是库位置的完全限定绝对路径。不支持相对路径。金宝app例如:
(hDlg, hSrc, 'TargetPreCompLibLocation',…“c: \ mytarget \ precomplibs”);
的调用来设置该参数set_param
函数。例如:
set_param(模型、“TargetPreCompLibLocation”……“c: \ mytarget \ precomplibs”);
在生成生成文件期间,构建过程将标记替换为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
.构建过程使用该路径在链接时获得对库文件的访问权。
控制应用于库文件名的后缀
对于模型构建的模板生成文件方法,可以使用TargetLibSuffix
参数来控制应用于库名的后缀(例如,_target.lib
或_target.a
).指定的后缀方案必须包含句点(.)。你可以申请TargetLibSuffix
以下图书馆:
类中指定的目标所依赖的库
rtwmakecfg.m
API。你可以用TargetLibSuffix
方法配置的预编译库和非预编译库的后缀rtwmakecfg
API。详情请参见使用rtwmakecfg。m API自定义生成的makefile.在这种情况下,目标可以在其选择回调中设置参数。例如:
(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
隐式。比如,一个顶级模特叫topmodel
引用模型命名refmodel1
而且refmodel2
,顶模型的TMF由:展开:Modellib = |> Modellib <| modelref_link_libs = |> modelref_link_libs <|
:
MODELLIB = topmodellib_target。库MODELREF_LINK_LIBS = \ refmodel1_rtwlib_target。图书馆refmodel2_rtwlib_target.library
默认情况下,
TargetLibSuffix
参数是一个空的字符向量。在本例中,构建过程使用文件扩展名为为这三个令牌选择一个默认后缀. lib
在Windows上®主机和.a
在UNIX®主机。对于模型引用库,默认后缀还包括_rtwlib
.例如,在Windows主机上,展开的makefile值为:MODELLIB = topmodellib。lib MODELREF_LINK_LIBS = refmodel1_rtwlib. lib自由refmodel2_rtwlib.lib