主要内容

编译器的故障诊断问题

编译器版本不匹配错误

描述

构建过程生成一个编译器版本不匹配错误。

行动

  1. 检查可用的支持和兼容的编译器列表金宝appwww.tatmou.com/金宝appsupport/compilers/current_release/

  2. 升级或改变你的编译器。有关更多信息,请参见选择和配置编译器

  3. 重建模型。

模型仿真和程序执行的结果是不同的

描述

程序生成的模型从模型模拟结果产生不同的结果。生成的源代码包含一个算术运算,生成一个带符号整数溢出。你的编译器可能没有实现包装行为带符号整数溢出条件。或者,如果您使用的是一个编译器,它支持包装,很可能你没有使用配置它金宝app-fwrapv选择。

有关更多信息,请参见“C语言代码生成器依赖未定义行为的整数溢出。”

行动

  • 如果你的编译器可以力包装行为,把它打开。例如,gcc编译器或基于gcc编译器,如MinGW指定编译器选项-fwrapv

  • 选择一个编译器检查整数溢出。

  • 如果你有嵌入式编码器®、开发和应用的代码替换库替换代码生成的整数签署。

生成预期的代码并产生意想不到的结果

描述

构建过程生成预期的源代码,但可执行程序产生意想不到的结果。生成的源代码看起来像预期的那样。然而,可执行程序产生意想不到的结果。

行动

做下列之一:

  • 编译器优化级别较低。

    1. 设置编译器优化级别配置参数自定义

    2. 自定义编译器优化的旗帜字段中,指定一个较低的优化级别。

    3. 重建模型。

  • 禁用编译器优化。

    1. 编译器优化级别优化了(更快的构建)

    2. 重建模型。

有关更多信息,请参见控制编译器优化和你的编译器文档。

编译时的问题

问题 行动

错误是出现在编译器配置。

确保MATLAB®金宝app支持您想要使用的编译器和版本。目前支持的列表和兼容的编译器金宝appwww.tatmou.com/金宝appsupport/compilers/current_release/。如果有必要,升级或改变你的编译器(见选择和配置编译器选择和配置编译器)。

环境变量设置为你的错误让实用程序,编译器、链接器。例如,安装Cygwin工具在Windows平台影响其他编译器使用的环境变量。

检查环境变量设置为您的系统使用命令或在Windows平台setenv在Linux®平台。确保所需的设置匹配是什么您正在使用的工具。

错误是出现在自定义代码指定的作为功能块或自定义代码。例如,代码是指一个头文件,编译器无法找到。

隔离问题的根源,从模型中删除自定义代码,调试和重建模型。

模型包括一个街区,如一块设备驱动程序,它并不适合使用当前选择的系统目标文件。

删除系统目标file-specific块或配置模型,使用另一个系统目标文件。

链接器错误了一个未定义的引用出现在模型构建的数据生成一个可执行程序的层次结构模型参考,这些条件是正确的:

  • 你代表信号、状态或参数数据通过创建一个数据对象等金宝appSimulink.Signal。您使用一个模型中的对象引用层次结构。

  • 你使用一个自定义存储类的数据对象。自定义存储类需要嵌入式编码器。

  • 设置对象的所有者不直接访问数据的模型。

  • 你使用的工具链lcc-win64

为了解决这个问题,选择其中的一个方法:

  • 在数据对象,清除老板财产。另外,设置所有者模型,直接访问数据。

  • 使用不同的工具链,如海湾合作委员会,而不是低成本航空

LCC编译器不支持&号源文件夹的路径金宝app

描述

如果你使用LCC编译器和模型文件夹路径包含一个& (&),构建过程会产生一个错误。

行动

从模型中删除&文件夹路径。然后,重建模型。

LCC编译器可能不支持行快速加速代码的长度金宝app

描述

如果你编译快速加速代码,LCC相关的编译器可能会生成一个错误行限制。快速加速代码可以由于模糊线长度更长。

行动

使用编译器编译快速加速代码支持更长的代码行。金宝app

相关的话题

外部网站