当您生成预编译、非预编译和模型参考库时,您可以通过使用配置参数来控制库的位置和库的名称。这些参数在模型构建过程中控制生成的makefile中的值:
对于使用工具链的方法的构建过程中,通过使用控制生成的库的位置TargetPreCompLibLocation
配置参数。
对于使用模板生成文件的方式构建过程中,通过使用控制生成库的位置TargetPreCompLibLocation
配置参数和控制通过使用所生成的库名称TargetLibSuffix
配置参数。
使用库控制参数:
指定预编译库的位置,例如块集库或万博1manbetx®编码器™块库。通常,目标拥有这些库的交叉编译版本,并将它们放在特定于目标的文件夹中。
控制应用于库文件名的后缀(例如,_target.a
要么_target.lib
)。
目标可以设置系统目标文件(STF)选择回调里面的参数。例如:
功能mytarget_select_callback_handler(varargin)hDig = varargin {1};HSRC = varargin {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 = coder.make.getDefaultToolchain()
获取默认工具链手柄。例如,输入:
tc = coder.make.getToolchainInfoFromRegistry (tc_name)
获取的句柄工具链的对象。例如,输入:
tool_archiver = tc.getBuildTool(“文档”);
获得延期。例如,输入:
ext_archiver = tool_archiver.getFileExtension (“静态库”);
如果没有设置TargetLibSuffix
参数、模板makefile和工具链方法产生相同的静态库文件名
。看到自定义库文件后缀和文件类型。延期
使用TargetPreCompLibLocation
配置参数:
覆盖在指定的预编译库的位置rtwmakecfg.m
文件(见使用rtwmakecfg.m API来定制生成的makefile详情)
预编译和分发特定于目标的产品库版本(例如,DSP System Toolbox™产品)
用于预编译库,例如块集库或万博1manbetxSimulink的编码器块库中指定的位置rtwmakecfg.m
通常是特定于块集的位置还是特定于万博1manbetxSimulink的编码器产品。代码生成预计,该库在这个位置和反对建立在图书馆链接存在。
对于某些应用程序,例如自定义目标,最好将预编译库定位在特定于目标的位置或其他替代位置,而不是在中指定的位置rtwmakecfg.m
。对于自定义对象,代码生成预期的具体目标交叉编译器创建的库,和将库中的目标具体位置。编译和地方库支持在特定目标位置的目标,这样他们就可以在构万博1manbetx建过程中使用。
您可以设置TargetPreCompLibLocation
参数的选择回调。为参数指定的路径必须是库位置的完全限定的绝对路径。不支持相对路径。万博1manbetx例如:
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
至:
填词+ = 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。有关详细信息,请参见使用rtwmakecfg.m API来定制生成的makefile。
在这种情况下,目标可设置在其选择回调的参数。例如:
slConfigUISetVal(处理、hSrc TargetLibSuffix,…“_target.library”);
或者,您可以调用set_param
函数。例如:
set_param(型号, 'TargetLibSuffix', '_ target.library');
在TMF对生成文件的转换,构建过程替换令牌|> EXPAND_LIBRARY_SUFFIX <|
以指定的后缀。例如,如果库名称指定rtwmakecfg.m
文件“rtwlib”
时,TMF扩展为:
LIBS + = |> EXPAND_LIBRARY_LOCATION <| \ |> EXPAND_LIBRARY_NAME <| \ |> EXPAND_LIBRARY_SUFFIX <|
至:
填词+ = c: \ mytarget \ precomplibs \ rtwlib_target.library
默认,TargetLibSuffix
设置为空字符向量。在这种情况下,构建过程将替换令牌|> EXPAND_LIBRARY_SUFFIX <|
带有空字符向量。
模型库与模型参考创建。对于这些情况,相关的makefile变量不需要|> EXPAND_LIBRARY_SUFFIX <|
令牌。相反,在生成过程包括TargetLibSuffix
含蓄。例如,对于一个顶级型号命名超模
与名为参考模型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。自由refmodel2_rtwlib.lib