使用MATLAB编码器从MATLAB生成C++代码,用于将图像转换为灰度。在Dev C++上编译时,它显示错误-undefined reference to rgb2gray_tbb_real64
其中一个生成的代码使用头文件libmwrgb2gray_tbb.h
。Screenchot它调用一个函数rgb2gray_tbb_real64
,该函数在任何地方都没有定义。
如何解决这个问题?
图像处理工具箱代码生成支持两种不同的模式:
- 生成的代码使用特定于平台的优化共享库。这对于MATLAB编码器硬件目标
MATLAB Host Computer
和其他一些类似目标是启用的 - 生成的代码是独立的,独立于共享库,并且是可移植的
文档更详细地介绍了这些概念。使用选项(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中。