Код пакета для других сред разработки

Когда группировать код

Перемещать файлы сгенерированного кода к другой среде разработки, такие как система или интегрированная среда разработки (IDE), которая не включает MATLAB®, использование packNGo функция в командной строке или опции Package в приложении MATLAB Coder™. Файлы упакованы в сжатом файле, что можно переместить и распаковать использование стандартной утилиты zip.

Смотрите, что сгенерированный код пакета Использует сгенерированный код приложения и пакета MATLAB Coder в командной строке.

Сгенерированный код пакета Используя приложение MATLAB Coder

В этом примере показано, как группировать сгенерированный код в zip-файл для перемещения с помощью опции Package в приложении MATLAB Coder. По умолчанию MATLAB Coder создает zip-файл в текущей рабочей папке.

  1. В локальной перезаписываемой папке, например, c:\work, запишите функциональный foo это берет два двойных входных параметров.

    function y = foo(A,B)
      y = A + B;
    end

  2. Откройте приложение MATLAB Coder. На вкладке MATLAB Toolstrip Apps, под Code Generation, кликают по значку приложения MATLAB Coder.

  3. На странице Select Source Files введите имя функции точки входа foo. Нажмите Next, чтобы перейти к странице Define Input Types.

  4. Укажите, что вводит A и B скаляр, удваивается. Нажмите Next, чтобы перейти к странице Check for Run-Time Issues.

  5. Проверяйте на проблемы во время выполнения. В диалоговом окне Check for Run-Time Issues введите код, который вызывает foo со скаляром удваивают входные параметры. Например:

    foo(1,2)
    Нажмите Check for Issues.

    Чтобы проверять на проблемы во время выполнения, приложение генерирует и запускает MEX-функцию. Приложение не находит проблемы для foo. Нажмите Next, чтобы перейти к странице Generate Code.

  6. В диалоговом окне Generate, набор Build Type к Source Code, Static Library, Dynamic Library, или Executable. Вы не можете группировать код, сгенерированный для целей MEX.

  7. Нажмите Generate. Нажмите Next, чтобы перейти к странице Finish Workflow.

  8. На странице Finish Workflow нажмите Package.

  9. В диалоговом окне Package задайте имя файла пакета и группирующий тип. По умолчанию приложение выводит имя файла пакета от названия проекта. Приложение сохранило файл в текущей рабочей папке. По умолчанию приложение группирует сгенерированные файлы как одну, плоскую папку. В данном примере используйте значения по умолчанию, и затем нажмите Save.

    Этот zip-файл содержит код С и заголовочные файлы, требуемые для перемещения. Это не содержит:

  10. Смотрите содержимое foo_pkg.zip в вашей рабочей папке, чтобы проверить, что это готово к перемещению к целевой системе. В зависимости от инструмента zip, который вы используете, можно потенциально открыть и смотреть файл, не распаковывая его.

    Можно теперь переместить получившийся zip-файл к желаемой среде разработки и распаковать файл.

Сгенерированный код пакета в командной строке

В этом примере показано, как группировать сгенерированный код в zip-файл для перемещения с помощью packNGo функция в командной строке.

  1. В локальной перезаписываемой папке, например, c:\work, запишите функциональный foo это берет два двойных входных параметров.

    function y = foo(A,B)
      y = A + B;
    end

  2. Сгенерируйте статическую библиотеку для функционального foo. (packNGo не группирует код MEX-функции.)

    codegen -report -config:lib foo -args {0,0}

    codegen генерирует код в c:\work\codegen\lib\foo папка.

  3. Загрузите buildInfo объект.

    load('c:\work\codegen\lib\foo\buildInfo.mat')

  4. Создайте zip-файл.

    packNGo(buildInfo, 'fileName', 'foo.zip');
    В качестве альтернативы используйте обозначение:
    buildInfo.packNGo('fileName', 'foo.zip');

    packNGo функция создает zip-файл, foo.zip, в текущей рабочей папке. Этот zip-файл содержит код С и заголовочные файлы, требуемые для перемещения. Это не содержит:

    В этом примере вы задаете только имя файла. Опционально, можно задать дополнительные упаковочные опции. Смотрите Задают packNGo Опции.

  5. Смотрите содержимое foo.zip проверять, что это готово к перемещению к целевой системе. В зависимости от инструмента zip, который вы используете, можно потенциально открыть и смотреть файл, не распаковывая его. Если необходимо распаковать файл, и вы упаковали файлы сгенерированного кода как иерархическую структуру, необходимо будет распаковать первичные и вторичные zip-файлы. Когда вы распаковываете вторичные zip-файлы, относительные пути файлов сохраняются.

    Можно теперь переместить получившийся zip-файл к желаемой среде разработки и распаковать файл.

Задайте packNGo Опции

Можно задать опции для packNGo функция.

КЗадать
Измените структуру упаковки файла к иерархическомуpackNGo(buildInfo, 'packType' 'hierarchical');
Измените структуру упаковки файла к иерархическому и переименуйте первичный zip-файлpackNGo (buildInfo, 'packType' 'иерархический'...
'имя файла' 'zippedsrcs');
Включайте все заголовочные файлы, найденные на включать пути в zip-файле (а не минимальные заголовочные файлы, требуемые создавать код)packNGo(buildInfo, 'minimalHeaders' false);
Сгенерируйте предупреждения для ошибок анализа и недостающих файловpackNGo (buildInfo, 'ignoreParseError' верный...
верный 'ignoreFileMissing');

Для получения дополнительной информации смотрите packNGo.

Выберите структуру для zip-файла

Прежде чем вы сгенерируете и упакуете файлы, решите, хотите ли вы группировать файлы в плоской или иерархической структуре папок. По умолчанию, packNGo функциональные пакеты файлы в одной, плоской структуре папок. Этот подход является самым простым и может быть оптимальным выбором.

ЕслиИспользование
Вы перемещаете файлы к IDE, который не использует сгенерированный make-файл, или код не зависит от относительного местоположения необходимых статических файлов Одна, плоская структура папок
Целевая среда разработки должна обеспечить структуру папок исходной среды, потому что это использует сгенерированный make-файл, или код зависит от относительного местоположения файловИерархическая структура

Если вы используете иерархическую структуру, packNGo функция создает два уровня zip-файлов. Существует первичный zip-файл, который в свою очередь содержит следующие вторичные zip-файлы:

  • mlrFiles.zip — файлы в вашем matlabroot дерево папки

  • sDirFiles.zip — файлы в и под вашей папкой сборки, где вы инициировали генерацию кода

  • otherFiles.zip — необходимые файлы не в matlabroot или start деревья папки

Пути для вторичных zip-файлов относительно корневой папки первичного zip-файла, обеспечивая исходную структуру папок разработки.