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

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

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

В этом примере показано, как группировать исполняемый файл, сгенерированный от Сгенерировать кода С из примера кода MATLAB с помощью packNGo функция. Можно также сгенерировать и упаковать статический файл библиотеки или динамический файл библиотеки. Вы не можете группировать файл MEX на C, поскольку файл MEX требует, чтобы MATLAB запустился. Для получения дополнительной информации о packNGo, смотрите packNGo в методах RTW.BuildInfo (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).

Похожие темы