我怎么调试代码使用MATLAB生成编码器崩溃或给出错误的结果吗?

18视图(30天)

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2022年3月11日
注意:这个区分墨西哥人函数生成(用于MATLAB)和独立的代码生成(源代码、静态库、动态库,或可执行)。
1。确保遵循推荐工作流使用MATLAB编码器生成代码:
特别是,确保生成和测试一个墨西哥人的函数,其中包含运行时错误检查,可能不会出现在独立的代码。
2。R2015b和后,运行时错误检查可以生成独立的代码使用一个配置对象代码生成:
> > cfg = coder.config (“自由”);
> > cfg。RuntimeChecks = 1;
> > codegen myFunction配置cfg
3所示。如果你看到不同的结果从MATLAB生成的代码比你看到的相同的功能,生成的代码检查的可能性是使用不同(但仍然正确)这个函数的实现。例如,“圣言”功能可以输出不同的答案从MATLAB与C代码生成。注意,奇异值分解不是唯一的,所以可以有多个矩阵分解,都是有效的。
4所示。检查编译器支持,按照以下页面:金宝app
5。检查是否有任何警告在代码生成。
6。如果生成,确保调用初始化函数的入口点函数之前,后终止函数被调用。可重入的代码生成需要手动调用初始化函数之前调用的入口点函数。
7所示。检查任何调用外部C函数通过编码器。ceval,确保数据类型和布局是正确的(注意,MATLAB使用默认列为主的布局)。
8。尝试编译调试标记
对墨西哥人来说,添加- g codegen命令:
> > codegen myFunctionargs {1,2} - g
对于独立的代码生成,创建一个编码器。配置对象和修改:
> > cfg = coder.config (“dll”);
> > cfg。BuildConfiguration =“调试”;
> > codegen myFunction配置cfg
如果(8)解决这个问题,请联系MathWorks技术支持金宝app为了报告这个编译器错误。
如果以上都不是解决问题,请联系MathWorks技术支持金宝app

更多的答案(0)

类别

找到更多的在MATLAB编码器帮助中心文件交换

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!