什么是内部编译器错误信息的意思是,我该怎么办?(What do internal compiler

2019-06-28 07:55发布

我试图编译我的C ++程序,它使用MPICH和NAG C库(我用的NAG产生随机数),与PGCC编译器。

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

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)表明我的代码行数?

Answer 1:

内部编译器错误是在编译器中的错误。 有没有什么可以做短线与编译器供应商提出的问题。

通常情况下,ICE的发生,当你试图编译不正确的代码,但它也是完全可以想象的编译器上的有效C ++呛。 语言是如此复杂,以至于很难在所有可能的组合来测试所有可能的功能。

如果你能搞清楚的代码是造成崩溃的线,你可以尝试更简单地重写它(例如,通过引入额外的局部变量或类型定义)。



Answer 2:

当我下载了一堆资产这发生在我身上的时候。 任何东西都可以共享命名空间出问题,从两个脚本或脚本不是为统一版本所使用。

我的建议是:

1)检查所有的脚本,看看是否有任何重复的名称,请确保你让他们在文件夹中组织,使这个简单!

2)如果你不能在所有正在发生的事情搞清楚,就可以删除你下载开始从最新到最旧资产的文件夹。 检查每个你摆脱资产的文件夹,看看你的错误更改时间。 一旦你找到它的脚本是造成麻烦,它只是一个找出原因的问题。



Answer 3:

他们指出,编译器发现错误或inconsistensies本身。 类似于使用assert在你的代码。

如果您编译的东西,这是非常奇怪的和非法的代码,它可能只是编译器团队没有测试这个用例。 否则,很可能与编译器有问题。



Answer 4:

如果你得到一个内部编译器错误几率,这可能是由于损坏的硬件。 也许你的RAM异常? 尝试运行的Memtest86。



文章来源: What do internal compiler error messages mean, and what can I do?