内部编译器错误消息的含义是什么,我该怎么办?

时间:2012-09-13 11:50:28

标签: c++ compiler-errors compilation internal-compiler-error

我正在尝试使用pgCC编译器编译我的C ++程序,该程序使用MPICH和NAG C库(我使用NAG生成随机数)。

但是,编译器给了我以下错误消息:

PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 225)
PGCC-S-0000-Internal compiler error. linearize: bad ili #:       0 (mpisim.C: 266)
PGCC-S-0000-Internal compiler error. gen_aili: unrec. ili opcode:       0 (mpisim.C: 266)
PGCC/x86 Linux 12.4-0: compilation completed with severe errors

我不知道这些消息是指什么。有人可以向我解释他们的意思吗?

有没有办法让我弄清楚问题线的位置? 255中的(mpisim.C: 225)是否表示我的代码中的行号?

4 个答案:

答案 0 :(得分:12)

内部编译器错误是编译器中的错误。没有什么可以解决编译器供应商提出的问题。

通常,ICE会在您尝试编译错误代码时发生,但编译器也可以完全想到有效的C ++。语言非常复杂,很难在所有可能的组合中测试每个可能的功能。

如果你设法弄清楚造成崩溃的代码行,你可以尝试用更简单的术语重写它(例如通过引入额外的局部变量或typedef)。

答案 1 :(得分:1)

当我下载一堆资产时,有时会发生这种情况。任何问题都可能出错,来自共享命名空间的两个脚本或不适用于您正在使用的Unity版本的脚本。

我的建议是:

1)检查所有脚本以查看是否有任何重复的名称,请确保将它们组织在文件夹中以使其更简单!

2)如果您无法弄清楚发生了什么,请开始删除从最新到最旧的资源文件夹。每次摆脱资产文件夹时检查您的错误是否发生变化。一旦找到导致问题的脚本,只需要找出原因。

答案 2 :(得分:0)

它们表明编译器本身发现了错误或不一致。与在代码中使用assert类似。

如果编译一些非常奇怪且非法的代码,可能只是编译器团队没有测试过这个用例。否则,编译器可能会出现问题。

答案 3 :(得分:0)

如果你得到一个内部编译器错误,可能是因为硬件坏了。也许你的RAM有问题?尝试运行memtest86。

相关问题