При создании предварительно скомпилированных, не предварительно скомпилированных и моделей-ссылок можно управлять расположением библиотеки и именем библиотеки с помощью параметров конфигурации. Эти параметры управляют значениями в сгенерированных make-файлах во время построений модели:
Для процессов сборки, которые используют подход набора инструментальных средств, управляйте сгенерированным расположением библиотеки при помощи TargetPreCompLibLocation
Параметр конфигурации.
Для процессов сборки, которые используют подход make-файла шаблона, управляйте сгенерированным расположением библиотеки при помощи TargetPreCompLibLocation
Параметром конфигурации и управляйте сгенерированным именем библиотеки при помощи TargetLibSuffix
Параметр конфигурации.
Используйте параметры управления библиотекой, чтобы:
Укажите расположение предварительно скомпилированных библиотек, таких как библиотеки blockset или Simulink® Coder™ библиотеку блоков. Как правило, целевой объект имеет перекрестно скомпилированные версии этих библиотек и помещает их в определенную целевой папку.
Управляйте суффиксом, применяемым к именам файлов библиотеки (для примера, _target.a
или _target.lib
).
Целевые устройства могут устанавливать параметры в системном целевом файле (STF), выбирая коллбэк. Для примера:
function 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(model,'TargetPreCompLibLocation',... 'c:\mytarget\precomplibs');
Примечание
Если ваша модель содержит ссылочные модели, можно использовать опцию make USE_MDLREF_LIBPATHS
управление копированием библиотек, используемых ссылочными моделями, в папку сборки родительской модели. Дополнительные сведения см. в разделе Расположение Модели-ссылке библиотек.
Подход набора инструментальных средств для построений моделей не использует значение TargetLibSuffix
параметр конфигурации для выбора имени файла библиотеки
и suffix
. extension
При подходе набора инструментальных средств окончательное двоичное имя состоит из
, а modelname
, и compilername
обеспечивается описанием инструмента сборки в определении набора инструментальных средств:extension
model_compilername
.extension
Вы можете идентифицировать расширение имени статического файла библиотеки из описания инструмента сборки в определении набора инструментальных средств. Чтобы получить эту информацию для набора инструментов по умолчанию, используйте следующую процедуру:
Получите имя набора инструментальных средств по умолчанию. Для примера введите:
tc_name = coder.make.getDefaultToolchain()
Получите указатель на набор инструментальных средств по умолчанию. Для примера введите:
tc = coder.make.getToolchainInfoFromRegistry(tc_name)
Получите указатель на объект набора инструментальных средств. Для примера введите:
tool_archiver = tc.getBuildTool('Archiver');
Получите внутренний номер. Для примера введите:
ext_archiver = tool_archiver.getFileExtension('Static Library');
Примечание
Если вы не устанавливаете TargetLibSuffix
подходы к параметрам, шаблонам make-файла и набору инструментальных средств создают одно и то же имя файла статической библиотеки
.extension
Используйте TargetPreCompLibLocation
параметр конфигурации:
Переопределите предварительно скомпилированное расположение библиотеки, заданное в rtwmakecfg.m
файл (для получения дополнительной информации см. Использование rtwmakecfg.m API для настройки сгенерированных make-файлов)
Предварительно скомпилируйте и распространите целевые версии библиотек изделий (для примера, DSP System Toolbox™ product)
Для предварительно скомпилированной библиотеки, такой как библиотека blockset или библиотека блоков Simulink Coder, расположение, заданное в rtwmakecfg.m
обычно является местоположением, специфичным для библиотеки или продукта Simulink Coder. Генератор кода ожидает, что библиотека существует в этом расположении, и ссылки на библиотеку во время построений.
Для некоторых приложений, таких как пользовательские целевые объекты, предпочтительно размещать предварительно скомпилированные библиотеки в конкретном целевом или другом альтернативном местоположении, а не в расположении, указанном в rtwmakecfg.m
. Для пользовательского целевого объекта генератор кода ожидает, что целевой кросс-компилятор создает библиотеку, и вы помещаете библиотеку в целевое местоположение. Скомпилируйте и поместите библиотеки, поддерживаемые конечным объектом, в конкретное место назначения, чтобы они могли использоваться в процессе сборки.
Можно настроить TargetPreCompLibLocation
параметр в выбранном коллбэке. Путь, заданный для параметра, должен быть полным, абсолютным путем к расположению библиотеки. Относительные пути не поддерживаются. Для примера:
slConfigUISetVal(hDlg, hSrc, 'TargetPreCompLibLocation',... 'c:\mytarget\precomplibs');
Кроме того, вы устанавливаете параметр с вызовом на set_param
функция. Для примера:
set_param(model,'TargetPreCompLibLocation',... 'c:\mytarget\precomplibs');
Во время генерации make-файла процесс сборки заменяет лексемы на местоположение из rtwmakecfg.m
файл. Например, если имя библиотеки в rtwmakecfg.m
файл 'rtwlib'
подход создания шаблона make-файла расширяет лексему из:
LIBS += |>EXPAND_LIBRARY_LOCATION<|\|>EXPAND_LIBRARY_NAME<|\ _target.library
кому:
LIBS += c:\mytarget\precomplibs\rtwlib_target.library
По умолчанию TargetPreCompLibLocation
- пустой символьный вектор. Процесс сборки использует расположение в rtwmakecfg.m
для замены маркера.
Процесс сборки присваивает такой путь, как ../slprj/grt/sub/sub_rtwlib.lib
на MODELREF_LINK_LIBS
. Процесс сборки использует путь, чтобы получить доступ к файлу библиотеки во время ссылки.
С шаблоном подходом make-файла для сборок моделей используйте TargetLibSuffix
параметр конфигурации для управления суффиксом, применяемым к именам библиотек (для примера, _target.lib
или _target.a
). Указанная суффиксная схема должна включать точку (.). Можно применить TargetLibSuffix
в следующие библиотеки:
Библиотеки, от которых зависит целевой объект, как указано в rtwmakecfg.m
API. Можно использовать TargetLibSuffix
для изменения суффикса предварительно скомпилированных и не предварительно скомпилированных библиотек, сконфигурированных из rtwmakecfg
API. Для получения дополнительной информации см. раздел Использование rtwmakecfg.m API для настройки сгенерированных make-файлов.
В этом случае цель может задать параметр в своем выбранном коллбэке. Для примера:
slConfigUISetVal(hDlg, hSrc, 'TargetLibSuffix',... '_target.library');
Кроме того, можно использовать вызов на set_param
функция. Для примера:
set_param(model,'TargetLibSuffix','_target.library');
Во время преобразования TMF в make-файл процесс сборки заменяет лексему |>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<|
с пустым символьным вектором.
Моделируйте библиотеки, созданные со модель-ссылка. В этих случаях связанные переменные make не требуют |>EXPAND_LIBRARY_SUFFIX<|
лексема. Вместо этого процесс сборки включает в себя TargetLibSuffix
неявно. Для примера - для верхней части модели с именем topmodel
со ссылочными моделями с именем refmodel1
и refmodel2
, TMF верхней модели расширен из:
MODELLIB = |>MODELLIB<| MODELREF_LINK_LIBS = |>MODELREF_LINK_LIBS<|
кому:
MODELLIB = topmodellib_target.library MODELREF_LINK_LIBS = \ refmodel1_rtwlib_target.library refmodel2_rtwlib_target.library
По умолчанию в TargetLibSuffix
параметр является пустым символьным вектором. В этом случае процесс сборки выбирает суффикс по умолчанию для этих трёх лексем, используя расширение файла .lib
в Windows® хосты и .a
в UNIX® хосты. Для модели-ссылки библиотек суффикс по умолчанию также включает _rtwlib
. Для примера на хосте Windows значения развернутого make-файла:
MODELLIB = topmodellib.lib MODELREF_LINK_LIBS = refmodel1_rtwlib.lib refmodel2_rtwlib.lib