Переместите код, сгенерированный из кода 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 в текущей рабочей папке. В этом примере вы задаете только имя файла. Вы также можете задать дополнительные опции упаковки. Смотрите Specify packNGo Options (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).

Похожие темы