#错误指令:“头不支持在C89语言模式”万博1manbetx

14日视图(30天)
我在我的代码使用#错误指令但不幸polyspace分析是抛出一个错误
错误:#错误指令:“头不支持在C89语言模式”万博1manbetx
| #错误”头不支持在C89语言模式”万博1manbetx
| ^
我试着 -no-language-extensions通过删除= iar编译器选项,但它仍然没有解决这个问题。有没有其他办法可以解决吗?
我用MATLAB R2017b

答案(1)

Anirban
Anirban 2022年3月10日
当编译器遇到一个 #错误 指令,停止并打印相关的消息。Polyspace在这方面表现得就像一个编译器,做同样的事。
我猜,在这种情况下,您的代码和你的编译器编译与Polyspace但不是。这可能意味着你尚未完全模拟与Polyspace分析你的编译器选项。例如,您可能没有设置正确的值 编译器 也可能是在编译时使用特定的编译器选项(Polyspace不知道)。更多细节,请参阅 相关修复Polyspace编译错误#错误指令
更能帮助你与这个特定的错误消息,你必须给我们周围的代码 #错误 指令。正如您将看到的在上面的文档链接中,a #错误 指令通常是某种形式的内部 # ifdef 警卫。这将是有趣的卫队和Polyspace如何能够通过,但是编译器没有。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年3月10日
啊,我只是意识到Polyspace被告知的编译器选项,这样是引进一个# include,不属于C89模式。然而,目前尚不完全清楚C89模式了 目的 编译环境。

登录置评。