Чтобы перенести файлы сгенерированного кода в другую среду разработки, такую как система или интегрированная среда разработки (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
- необходимые файлы не в
или matlabroot
start
деревья папок
Пути для вторичных zip- файлов относятся к корневой папке основного zip- файла, поддерживая структуру исходной папки разработки.