使用MATLAB Coder生成的C ++代码:编译错误“对`rgb2gray_tbb_real64的未定义引用”

时间:2018-10-31 04:45:08

标签: c++ matlab matlab-coder

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

生成的代码之一使用头文件libmwrgb2gray_tbb.hScreenschot它调用一个rgb2gray_tbb_real64函数,该函数未在任何地方定义。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

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

documentation详细介绍了这些概念。使用选项(1)时,必须使用Coder实用程序打包生成的代码才能重新定位。 MATLAB Coder知道如何正确收集和打包所生成代码的所有依赖项。

要进行此打包,可以使用packNGo函数,使用MATLAB Coder App的Package屏幕上的Finish Workflow按钮,或使用MATLAB Coder报告。 MATLAB Coder documentation中详细介绍了这些步骤。要使用Package Code,您可以:

packNGo

这将在当前目录中创建codegen myFunction -args {1,2,3} -config:lib -report load(fullfile('codegen','lib','myFunction','buildInfo.mat')); packNGo(buildInfo, 'fileName', 'myFunction.zip'); ,其中将包含您生成的代码以及它依赖的所有标头和库。然后,您可以将所有这些导入到您选择的IDE中。