Чтобы переместить файлы сгенерированного кода к другой среде разработки, такие как система или интегрированная среда разработки (IDE), которая не включает MATLAB®, используют функцию packNGo
в командной строке или опции Пакета в приложении MATLAB Coder™. Файлы группированы в сжатом файле, что можно переместить и распаковать использование стандартной утилиты zip.
Смотрите, что сгенерированный код пакета Использует сгенерированный код приложения и пакета MATLAB CODER в командной строке.
Этот пример показывает, как группировать сгенерированный код в zip-файл для перемещения с помощью опции Пакета в приложении MATLAB CODER. По умолчанию MATLAB CODER создает zip-файл в текущей рабочей папке.
В локальной перезаписываемой папке, например c:\work
, пишут функциональный foo
, который берет два двойных входных параметра.
function y = foo(A,B) y = A + B; end
Откройте приложение MATLAB CODER. На вкладке MATLAB Toolstrip Apps, под Генерацией кода, кликают по значку приложения MATLAB CODER.
На странице Select Source Files введите имя функции точки входа foo
. Нажмите Далее, чтобы перейти к странице Define Input Types.
Укажите, что вводит A
, и B
скаляр, удваивается. Нажмите Далее, чтобы перейти к странице Check for Run-Time Issues.
Проверьте на проблемы во время выполнения. В диалоговом окне Check for Run-Time Issues введите код, который вызывает foo
со скалярными двойными входными параметрами. Например:
foo(1,2)
Чтобы проверить на проблемы во время выполнения, приложение генерирует и запускает MEX-функцию. Приложение не находит проблемы для foo
. Нажмите Далее, чтобы перейти к Сгенерировать Кодовой странице.
В диалоговом окне Generate, набор Тип Сборки к Source Code
, Static Library
, Dynamic Library
или Executable
. Вы не можете группировать код, сгенерированный для целей MEX.
Нажмите Generate. Нажмите Далее, чтобы перейти к странице 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
— необходимые файлы не в деревьях папки
или matlabroot
start
Пути для вторичных zip-файлов относительно корневой папки первичного zip-файла, поддерживая исходную структуру папок разработки.