Сгенерированный код C++ с использованием MATLAB Coder: ошибка компиляции неопределенная ссылка на `rgb2gray_tbb_real64'

Сгенерированный код C++ из MATLAB для преобразования изображения в оттенки серого с использованием MATLAB Coder. При компиляции на Dev C++ выдает ошибку - undefined reference to rgb2gray_tbb_real64

Один из сгенерированных кодов использует заголовочный файл libmwrgb2gray_tbb.h. Снимок экрана Вызывает функцию rgb2gray_tbb_real64, которая нигде не определена.

Как это уладить?


person Ritwick Mohan    schedule 31.10.2018    source источник
comment
Пожалуйста, не публикуйте изображения кода и сообщения об ошибках. Вместо этого скопируйте и вставьте их в свой вопрос. Изображения не доступны для поиска, и их нелегко (или невозможно) читать людям с нарушениями зрения.   -  person Cris Luengo    schedule 31.10.2018
comment
Что касается вашего вопроса: следовали ли вы инструкциям Coder, связанным с компоновкой соответствующих библиотек? Похоже, нужно подключить библиотеку.   -  person Cris Luengo    schedule 31.10.2018


Ответы (1)


Генерация кода Image Processing Toolbox поддерживает 2 различных режима:

  1. Сгенерированный код использует оптимизированные общие библиотеки для конкретной платформы. Это включено для аппаратной цели MATLAB Coder MATLAB Host Computer и нескольких других подобных целей.
  2. Сгенерированный код является автономным, независимым от общих библиотек и переносимым.

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

Для этого можно использовать функцию packNGo, кнопку Package на экране Finish Workflow приложения MATLAB Coder или кнопку Package Code в отчете MATLAB Coder. Эти шаги подробно описаны в MATLAB Coder. документация. Чтобы использовать packNGo, вы можете:

codegen myFunction -args {1,2,3} -config:lib -report
load(fullfile('codegen','lib','myFunction','buildInfo.mat'));
packNGo(buildInfo, 'fileName', 'myFunction.zip');

Это создаст myFunction.zip в вашем текущем каталоге, который будет содержать сгенерированный код и все заголовки и библиотеки, от которых он зависит. Затем вы можете импортировать все это в выбранную вами среду IDE.

person Ryan Livingston    schedule 02.11.2018