使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"



使用MATLAB编码器从MATLAB生成C++代码,用于将图像转换为灰度。在Dev C++上编译时,它显示错误-undefined reference to rgb2gray_tbb_real64

其中一个生成的代码使用头文件libmwrgb2gray_tbb.h。Screenchot它调用一个函数rgb2gray_tbb_real64,该函数在任何地方都没有定义。

如何解决这个问题?

图像处理工具箱代码生成支持两种不同的模式:

  1. 生成的代码使用特定于平台的优化共享库。这对于MATLAB编码器硬件目标MATLAB Host Computer和其他一些类似目标是启用的
  2. 生成的代码是独立的,独立于共享库,并且是可移植的

文档更详细地介绍了这些概念。使用选项(1(时,必须使用编码器实用程序对生成的代码进行打包,以便重新定位。MATLAB编码器知道如何正确收集和打包生成代码的所有依赖项。

要进行此打包,您可以使用packNGo函数,使用MATLAB编码器应用程序Finish Workflow屏幕上的Package按钮,或MATLAB编码器报告中的Package Code按钮。MATLAB编码器文档中详细介绍了这些步骤。要使用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中。

相关内容

最新更新