如何解决由于已达到数组的最大内存分配编译器的堆空间不足,因此无法编译Modelica程序
我目前正在尝试在Dymola中编译Modelica程序。我遇到了一个问题,即编译器空间不足(严重错误C1060),数组的总大小不能超过0x7fffffff字节(错误C2148),并警告C4307:'*':有符号整数常量溢出。 >
我尝试将编译器标志设置为/ Zm,以增加编译时的内存分配,以及设置Advanced.CompileWith64 = 2。到目前为止,我在编译程序方面都没有成功,任何建议都将不胜感激。
我访问过的一些网站可能会有所帮助:
https://www.claytex.com/blog/dymola-compilation-process/?fbclid=IwAR2_GM6Hrj
https://www.claytex.com/blog/stepping-through-dymosim-exe/
解决方法
对我来说,有两种可能的解释:
- 您使用C源代码中包含的一张大表。最好的解决方案是将表放在外部(使用Modelica.Blocks.Tables.CombiTable *或类似方法),并可能进行64位编译(以使其适合地址空间)。
- 翻译中出现错误,数组不应该那么大,在这种情况下,没有模型就很难说更多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。