在生成期间控制库的位置和命名

当您生成预编译、非预编译和模型参考库时,您可以通过使用配置参数来控制库的位置和库的名称。这些参数在模型构建过程中控制生成的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延期

您可以识别从工具链定义构建工具描述静态库文件扩展名。为了得到这个信息的默认工具链,使用此过程:

  1. 获取默认的工具链名称。例如,输入:

    tc_name = coder.make.getDefaultToolchain()
  2. 获取默认工具链手柄。例如,输入:

    tc = coder.make.getToolchainInfoFromRegistry (tc_name)
  3. 获取的句柄工具链的对象。例如,输入:

    tool_archiver = tc.getBuildTool(“文档”);
  4. 获得延期。例如,输入:

    ext_archiver = tool_archiver.getFileExtension (“静态库”);

请注意

如果没有设置TargetLibSuffix参数、模板makefile和工具链方法产生相同的静态库文件名延期。看到自定义库文件后缀和文件类型

指定预编译库的位置

使用TargetPreCompLibLocation配置参数:

用于预编译库,例如块集库或万博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.libMODELREF_LINK_LIBS。构建过程使用该路径在链接时访问库文件。

控制应用于库文件名的后缀

使用模板makefile方法构建模型,使用TargetLibSuffix配置参数,以控制施加到库名称的后缀(例如,_target.lib要么_target.a)。指定的后缀方案必须包含句点(.)。您可以应用TargetLibSuffix以下库:

  • 方法中指定的目标所依赖的库rtwmakecfg.mAPI。您可以使用TargetLibSuffix以改变从配置了预编译的和非预编译库的后缀rtwmakecfgAPI。有关详细信息,请参见使用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含蓄。例如,对于一个顶级型号命名超模与名为参考模型refmodel1refmodel2,顶级车型的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