Когда вы генерируете предварительно скомпилированный, непредварительно скомпилированный, и библиотеки модели - ссылки, можно управлять местоположением библиотеки и именем библиотеки при помощи параметров конфигурации. Эти параметры управляют значениями в сгенерированных 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');
Если ваша модель содержит модели, на которые ссылаются, можно использовать сделать опцию 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-файл шаблона и подходы набора инструментальных средств производят то же статическое имя файла библиотеки
. Смотрите настраивают суффикс файла библиотеки и тип файла (Simulink Coder).extension
Используйте TargetPreCompLibLocation
параметр конфигурации к:
Замените предварительно скомпилированное местоположение библиотеки, заданное в rtwmakecfg.m
файл (см. Использование rtwmakecfg.m API, чтобы Настроить Сгенерированные Make-файлы для деталей),
Предварительно скомпилируйте и распределите целевые версии библиотек продукта (например, продукт DSP System Toolbox™)
Для предварительно скомпилированной библиотеки, такой как blockset библиотека или библиотека блоков Simulink Coder, местоположение задано в rtwmakecfg.m
обычно местоположение, характерное для blockset или продукта 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