2013-11-21 9 views
0

我在我的项目上第一次尝试了英特尔编译器(icpc),这是使用GCC开发的。一些源文件后,它击中了错误,并没有告诉我很多:英特尔编译器:错误“IL行走中的未知类型”是什么意思?

/export/home/i11pcmh235/intel/bin/icpc -o .buildO/distmeasures/AlgebraicDistance.o -c -std=c++11 -Wall -c -fmessage-length=0 -fPIC -fopenmp -O3 -DNDEBUG -I/home/i11/cls/workspace/gtest/include src/distmeasures/AlgebraicDistance.cpp 
src/community/PLM.cpp(147): internal error: assertion failed: unknown type in IL walk (shared/cfe/edgcpfe/walk_entry.h, line 1015) 

      }); 
      ^

compilation aborted for src/community/PLM.cpp (code 4) 

谁能解释一下?

我的编译器标志好吗?我只是尝试使用与GCC相同的。

有问题的代码段看起来是这样的:

#pragma omp atomic read 
         C = zeta[u]; 

//      TRACE("Processing neighborhood of node " << u << ", which is in cluster " << C); 
         G.forNeighborsOf(u, [&](node v) { 
#pragma omp atomic read 
           D = zeta[v]; 
//        TRACE("Neighbor " << v << ", which is still in cluster " << zeta[v]); 
           if (D != C) { // consider only nodes in other clusters (and implicitly only nodes other than u) 
             double delta = deltaMod(u, C, D); 
             if (delta > deltaBest) { 
               deltaBest = delta; 
               best = D; 
             } 
           } 
         }); 
+0

嘿,只是一个简单的问题:这是什么特定的语言(版本,名称,规格)? – 2013-11-21 13:44:17

+0

@AnubhavSaini C++ 11。包括一些OpenMP编译指示。 – clstaudt

回答

4

内部错误一般意味着你已经打了一个编译器错误。也就是说,错误在编译器中,而不是你的代码。 IL是编译器 - 编写者说的“中间语言”,是编译器用来生成代码的内部表示。

您将不得不查看英特尔是否修复了它,和/或提交了错误报告。

+0

报告这种编译器错误的正确方法是什么? – clstaudt

+0

我不确定与英特尔的编译器。自从我使用它以来已经过了很多年,并且从来不必报告它的错误。您可能会检查英特尔的开发者页面,看看是否有某种支持链接。快速谷歌表明这是一个很好的起点:http://software.intel.com/en-us/forums/intel-c-compiler –

相关问题