Переместите код, сгенерированный от кода MATLAB до другой среды разработки

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

Группируйте код

Этот пример показывает, как группировать исполняемый файл, сгенерированный от Сгенерировать кода С от примера кода MATLAB с помощью функции packNGo. Можно также сгенерировать и группировать статический файл библиотеки или динамический файл библиотеки. Вы не можете группировать файл MEX на C, поскольку файл MEX требует, чтобы MATLAB запустился. Для получения дополнительной информации о packNGo смотрите packNGo в Методах информации о Сборке (MATLAB Coder).

Файлы должны были сгенерировать исполняемый файл, reconstructSignalTestbench.m, GenerateSignalWithHighEnergyFFTCoeffs.m и файлы reconstructSignalTestbench_Main.c от Сгенерировать кода С от примера кода MATLAB. Скопируйте все эти файлы в текущую рабочую папку. Чтобы сгенерировать исполняемый файл, запустите следующие команды в подсказке команды MATLAB:

cfg =  coder.config('exe');
cfg.CustomSource = 'reconstructSignalTestbench_Main.c';
cfg.CustomInclude = ['"',pwd,'"'];
codegen -config cfg -report reconstructSignalTestbench

Если вы используете Windows, вы видите, что reconstructSignalTestbench.exe сгенерирован в текущей папке. Если вы используете машину Linux, сгенерированным исполняемым файлом является reconstructSignalTestbench. Функция codegen генерирует исходный код зависимости и файл buildinfo.mat в папке codegen\exe\reconstructSignalTestbench.

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

load('codegen\exe\reconstructSignalTestbench\buildinfo.mat')

Группируйте код в файле .zip с помощью функции packNGo.

packNGo(buildInfo,'fileName','reconstructSignalWithHighEnergyFFTCoeffs.zip');

Функция packNGo создает zip-файл, reconstructSignalWithHighEnergyFFTCoeffs.zip в текущей рабочей папке. В этом примере вы задаете только имя файла. Опционально, можно задать дополнительные упаковочные опции. Смотрите Задают packNGo Опции (MATLAB Coder).

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

Предварительно созданные динамические файлы библиотеки (.dll)

Если вы сравниваете содержимое папки codegen\exe\reconstructSignalTestbench и папки reconstructSignalWithHighEnergyFFTCoeffs.zip, вы видите, что существуют дополнительные файлы .dll, которые появляются в папке zip. Эти файлы .dll предварительно создаются динамические файлы библиотеки, которые поставляются с MATLAB. Исполняемые файлы, сгенерированные от определенных Системных объектов, требуют, чтобы они предварительно создали файлы .dll. Сгенерировать код С от примера кода MATLAB использует dsp.FFT и Системные объекты dsp.IFFT, 'FFTImplementation' которых установлен в 'FFTW'. В режиме FFTW исполняемые файлы, сгенерированные от этих объектов, зависят от предварительно созданных файлов .dll. К коду пакета, который работает на среде без установленного MATLAB, MATLAB Coder группирует эти файлы .dll в папке zip. Для списка всех Системных объектов в DSP System Toolbox™, которые требуют предварительно созданных файлов .dll, смотрите, Как Запустить Сгенерированный Исполняемый файл Вне MATLAB.

Чтобы идентифицировать предварительно созданные файлы .dll, ваш исполняемый файл требует, запустите следующую команду в подсказке команды MATLAB.

files = getNonBuildFiles(buildInfo,'true','true');

Для получения дополнительной информации смотрите getNonBuildFiles в Индивидуальной настройке Процесса сборки (MATLAB Coder).

Для примера, показывающего рабочий процесс опции Package, чтобы переместить код с помощью приложения MATLAB Coder, см. Код Пакета для Других Сред разработки (MATLAB Coder).

Похожие темы