Чтобы переместить файлы сгенерированного кода к другой среде разработки, такие как система или интегрированная среда разработки (IDE), которая не включает MATLAB®, используют функцию packNGo в командной строке или опции Package в приложении MATLAB Coder™. Файлы группированы в сжатом файле, что можно переместить и распаковать использование стандартной утилиты zip.
Смотрите, что сгенерированный код пакета Использует сгенерированный код приложения и пакета MATLAB Coder в командной строке.
Этот пример показывает, как группировать сгенерированный код в zip-файл для перемещения с помощью опции Package в приложении MATLAB Coder. По умолчанию MATLAB Coder создает zip-файл в текущей рабочей папке.
В локальной перезаписываемой папке, например, c:\work, пишут функциональный foo, который берет два двойных входных параметров.
function y = foo(A,B) y = A + B; end
Откройте приложение MATLAB Coder. На вкладке MATLAB Toolstrip Apps, под Code Generation, кликают по значку приложения MATLAB Coder.
На странице Select Source Files введите имя функции точки входа foo. Нажмите Next, чтобы перейти к странице Define Input Types.
Укажите, что вводит A, и B скаляр, удваивается. Нажмите Next, чтобы перейти к странице Check for Run-Time Issues.
Проверяйте на проблемы во время выполнения. В диалоговом окне Check for Run-Time Issues введите код, который вызывает foo со скалярными двойными входными параметрами. Например:
foo(1,2)
Чтобы проверять на проблемы во время выполнения, приложение генерирует и запускает MEX-функцию. Приложение не находит проблемы для foo. Нажмите Next, чтобы перейти к странице Generate Code.
В диалоговом окне Generate, набор Build Type к Source Code, Static Library, Dynamic Library или Executable. Вы не можете группировать код, сгенерированный для целей MEX.
Нажмите Generate. Нажмите Next, чтобы перейти к странице Finish Workflow.
На странице Finish Workflow нажмите Package.
В диалоговом окне Package задайте имя файла пакета и группирующий тип. По умолчанию приложение выводит имя файла пакета от названия проекта. Приложение сохранило файл в текущей рабочей папке. По умолчанию приложение группирует сгенерированные файлы как одну, плоскую папку. В данном примере используйте значения по умолчанию, и затем нажмите Save.
Этот zip-файл содержит код С и заголовочные файлы, требуемые для перемещения. Это не содержит:
Скомпилируйте флаги
Задает
Make-файлы
Основные файлы примера, если вы не конфигурируете генерацию кода, чтобы сгенерировать и скомпилировать пример основная функция. Смотрите Включают Сгенерированный код Используя Пример Основная Функция.
Осмотрите содержимое foo_pkg.zip в вашей рабочей папке, чтобы проверить, что это готово к перемещению к целевой системе. В зависимости от инструмента zip, который вы используете, можно потенциально открыть и осмотреть файл, не распаковывая его.
Можно теперь переместить получившийся zip-файл к желаемой среде разработки и распаковать файл.
Этот пример показывает, как группировать сгенерированный код в zip-файл для перемещения с помощью функции packNGo в командной строке.
В локальной перезаписываемой папке, например, c:\work, пишут функциональный foo, который берет два двойных входных параметров.
function y = foo(A,B) y = A + B; end
Сгенерируйте статическую библиотеку для функционального foo. (packNGo не группирует код MEX-функции.)
codegen -report -config:lib foo -args {0,0}
codegen генерирует код в папке c:\work\codegen\lib\foo.
Загрузите объект buildInfo.
load('c:\work\codegen\lib\foo\buildInfo.mat')Создайте zip-файл.
packNGo(buildInfo, 'fileName', 'foo.zip');
buildInfo.packNGo('fileName', 'foo.zip');
Функция packNGo создает zip-файл, foo.zip, в текущей рабочей папке. Этот zip-файл содержит код С и заголовочные файлы, требуемые для перемещения. Это не содержит:
Скомпилируйте флаги
Задает
Make-файлы
Основные файлы примера, если вы не конфигурируете генерацию кода, чтобы сгенерировать и скомпилировать пример основная функция. Смотрите Включают Сгенерированный код Используя Пример Основная Функция.
В этом примере вы задаете только имя файла. Опционально, можно задать дополнительные упаковочные опции. Смотрите Задают packNGo Опции.
Осмотрите содержимое foo.zip, чтобы проверить, что это готово к перемещению к целевой системе. В зависимости от инструмента zip, который вы используете, можно потенциально открыть и осмотреть файл, не распаковывая его. Если необходимо распаковать файл, и вы группировали файлы сгенерированного кода как иерархическую структуру, необходимо будет распаковать первичные и вторичные zip-файлы. Когда вы распаковываете вторичные zip-файлы, относительные пути файлов сохраняются.
Можно теперь переместить получившийся zip-файл к желаемой среде разработки и распаковать файл.
Можно задать опции для функции packNGo.
| К | Задать |
|---|---|
| Измените структуру упаковки файла к иерархическому | packNGo(buildInfo, {'packType' 'hierarchical'}); |
| Измените структуру упаковки файла к иерархическому и переименуйте первичный zip-файл | packNGo (buildInfo, {'packType' 'иерархический'... |
| Включайте все заголовочные файлы, найденные на включать пути в zip-файле (а не минимальные заголовочные файлы, требуемые создавать код) | packNGo(buildInfo, {'minimalHeaders' false}); |
| Сгенерируйте предупреждения для ошибок анализа и недостающих файлов | packNGo (buildInfo, {'ignoreParseError' верный... |
Для получения дополнительной информации смотрите packNGo.
Прежде чем вы сгенерируете и группируете файлы, решите, хотите ли вы группировать файлы в плоской или иерархической структуре папок. По умолчанию функция packNGo группирует файлы в одной, плоской структуре папок. Этот подход является самым простым и может быть оптимальным выбором.
| Если | Использование |
|---|---|
| Вы перемещаете файлы к IDE, который не использует сгенерированный make-файл, или код не зависит от относительного местоположения необходимых статических файлов | Одна, плоская структура папок |
| Целевая среда разработки должна поддержать структуру папок исходной среды, потому что это использует сгенерированный make-файл, или код зависит от относительного местоположения файлов | Иерархическая структура |
Если вы используете иерархическую структуру, функция packNGo создает два уровня zip-файлов. Существует первичный zip-файл, который в свою очередь содержит следующие вторичные zip-файлы:
mlrFiles.zip — файлы в вашем дереве папки matlabroot
sDirFiles.zip — файлы в и под вашей папкой сборки, где вы инициировали генерацию кода
otherFiles.zip — необходимые файлы не в деревьях папки или matlabrootstart
Пути для вторичных zip-файлов относительно корневой папки первичного zip-файла, поддерживая исходную структуру папок разработки.