При создании предварительно скомпилированных, некомпилированных и модельных библиотек ссылок можно управлять расположением библиотеки и ее именем с помощью параметров конфигурации. Эти параметры управляют значениями в созданных makefile во время построения модели:
Для процессов построения, использующих подход, основанный на цепочке инструментов, управление расположением созданной библиотеки осуществляется с помощью TargetPreCompLibLocation параметр конфигурации.
Для процессов построения, использующих подход makefile шаблона, управляйте расположением созданной библиотеки с помощью TargetPreCompLibLocation параметр конфигурации и управление созданным именем библиотеки с помощью TargetLibSuffix параметр конфигурации.
Используйте параметры управления библиотекой для:
Укажите расположение предварительно скомпилированных библиотек, таких как библиотеки блоков или библиотека блоков 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
При использовании подхода toolchain окончательное двоичное имя состоит из , 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 параметры, makefile шаблона и подходы к цепочке инструментов создают одно и то же имя файла статической библиотеки .extension
Используйте TargetPreCompLibLocation параметр конфигурации для:
Переопределить расположение предварительно скомпилированной библиотеки, указанное в rtwmakecfg.m (дополнительные сведения см. в разделе Использование API rtwmakecfg.m для настройки созданных Makefiles)
Предварительная компиляция и распространение целевых версий библиотек продуктов (например, системы DSP Toolbox™ продукта)
Для предварительно скомпилированной библиотеки, такой как библиотека блоков или библиотека блоков Simulink Coder, расположение указано в rtwmakecfg.m как правило, это местоположение, специфичное для блока или продукта Simulink Coder. Генератор кода ожидает, что библиотека существует в этом расположении и связывается с библиотекой во время построения.
Для некоторых приложений, таких как пользовательские конечные объекты, предпочтительно размещать предварительно скомпилированные библиотеки в целевом или другом альтернативном расположении, а не в расположении, указанном в rtwmakecfg.m. Для пользовательского целевого объекта генератор кода ожидает, что целевой кросс-компилятор создаст библиотеку, и вы поместите библиотеку в целевое местоположение. Скомпилируйте и разместите библиотеки, поддерживаемые целевым объектом, в определенном расположении, чтобы их можно было использовать в процессе построения.
Вы можете настроить TargetPreCompLibLocation в его ответном вызове select. Путь, указанный для параметра, должен быть полным, абсолютным путем к расположению библиотеки. Относительные пути не поддерживаются. Например:
slConfigUISetVal(hDlg, hSrc, 'TargetPreCompLibLocation',... 'c:\mytarget\precomplibs');
Можно также задать параметр с помощью вызова set_param функция. Например:
set_param(model,'TargetPreCompLibLocation',... 'c:\mytarget\precomplibs');
Во время создания makefile процесс сборки заменяет маркеры расположением из 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/sub_rtwlib.lib кому MODELREF_LINK_LIBS. В процессе построения используется путь для получения доступа к файлу библиотеки во время ссылки.
Используя подход makefile шаблона для построений модели, используйте TargetLibSuffix параметр конфигурации для управления суффиксом, применяемым к именам библиотек (например, _target.lib или _target.a). Указанная схема суффиксов должна включать точку (.). Вы можете применить TargetLibSuffix в следующие библиотеки:
Библиотеки, от которых зависит цель, как указано в rtwmakecfg.m API. Вы можете использовать TargetLibSuffix для изменения суффикса предкомпилированных и некомпилированных библиотек, настроенных из rtwmakecfg API. Дополнительные сведения см. в разделе Использование API rtwmakecfg.m для настройки созданных Makefiles.
В этом случае целевой объект может задать параметр в своем ответном вызове выбора. Например:
slConfigUISetVal(hDlg, hSrc, 'TargetLibSuffix',... '_target.library');
Кроме того, можно использовать вызов set_param функция. Например:
set_param(model,'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.library MODELREF_LINK_LIBS = \ refmodel1_rtwlib_target.library refmodel2_rtwlib_target.library
По умолчанию TargetLibSuffix параметр является пустым символьным вектором. В этом случае процесс построения выбирает суффикс по умолчанию для этих трех токенов, используя расширение файла .lib на хостах Windows ® и.a на хостах UNIX ®. Для библиотек ссылок модели суффикс по умолчанию также включает_rtwlib. Например, на хосте Windows расширенные значения makefile:
MODELLIB = topmodellib.lib MODELREF_LINK_LIBS = refmodel1_rtwlib.lib refmodel2_rtwlib.lib