Чтобы перенести файлы сгенерированного кода в другую среду разработки, такую как система или интегрированная среда разработки (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 на вкладке Apps MATLAB Toolstrip, в разделе 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-файл содержит код С и файлы заголовков, необходимые для перемещения. Он не содержит:
Скомпилируйте флаги
Определяет
Makefiles
Пример основных файлов, если вы не конфигурируете генерацию кода, чтобы сгенерировать и скомпилировать пример основной функции. Смотрите Включить сгенерированный код Используя Пример Основной Функции.
Осмотрите содержимое 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-файл содержит код С и файлы заголовков, необходимые для перемещения. Он не содержит:
Скомпилируйте флаги
Определяет
Makefiles
Пример основных файлов, если вы не конфигурируете генерацию кода, чтобы сгенерировать и скомпилировать пример основной функции. Смотрите Включить сгенерированный код Используя Пример Основной Функции.
В этом примере вы задаете только имя файла. Вы также можете задать дополнительные опции упаковки. См. раздел «Задание опций packNGo».
Осмотрите содержимое foo.zip чтобы убедиться, что он готов к перемещению в систему назначения. В зависимости от инструмента zip, который вы используете, вы потенциально можете открыть и просмотреть файл, не распаковывая его. Если вам нужно распаковать файл и вы упаковали файлы сгенерированного кода как иерархическую структуру, вам нужно будет распаковать основной и вторичный zip-файлы. При распаковке вторичных zip-файлов сохраняются относительные пути к файлам.
Теперь можно переместить полученный zip-файл в нужную среду разработки и распаковать файл.
Можно задать опции для packNGo функция.
| Кому | Определить |
|---|---|
| Измените структуру упаковки файлов на иерархическую | packNGo(buildInfo, 'packType' 'hierarchical'); |
| Измените структуру упаковки файлов на иерархическую и переименуйте основной zip-файл | packNGo (buildInfo, 'packType' 'иерархический'... |
| Включите все заголовочные файлы, найденные в пути включения в zip-файл (а не минимальные заголовочные файлы, необходимые для создания кода) | packNGo(buildInfo, 'minimalHeaders' false); |
| Сгенерируйте предупреждения для ошибок анализа и отсутствующих файлов | packNGo (buildInfo, 'ignoreParseError' true... |
Для получения дополнительной информации см. packNGo.
Прежде чем вы сгенерируете и упакуете файлы, решите, хотите ли вы упаковать файлы в плоскую или иерархическую структуру папки. По умолчанию, packNGo функция упаковывает файлы в одну, плоскую структуру папки. Этот подход является самым простым и может быть оптимальным выбором.
| Если | Использовать |
|---|---|
| Вы перемещаете файлы в IDE, которая не использует сгенерированный make-файл, или код не зависит от относительного расположения необходимых статических файлов | Единая, плоская структура папки |
| Целевая среда разработки должна поддерживать структуру папок исходного окружения, потому что она использует сгенерированный make-файл, или код зависит от относительного расположения файлов | Иерархическая структура |
Если используется иерархическая структура, packNGo функция создает два уровня zip- файлов. Существует основной zip- файла, который, в свою очередь, содержит следующие вторичные zip- файлов:
mlrFiles.zip - файлы в вашем дерево папокmatlabroot
sDirFiles.zip - файлы в папке сборки и в ней, где вы инициировали генерацию кода
otherFiles.zip - необходимые файлы не в или matlabrootstart деревья папок
Пути для вторичных zip- файлов относятся к корневой папке основного zip- файла, поддерживая структуру исходной папки разработки.