2014-01-16 51 views
2

我想通过'make ks_spectrum_hisq'命令使源代码在milcv7.7.8/ks_spectrum中使用版本11.1 20090511编译具有MPICC的群集上的milcv7.7.8/ks_spectrum源然后在最后的错误出来作为intel mpicc链接器错误未定义对`_mm_idivrem_epi32'的引用

com_mpi.o:在功能initialize_machine': ../generic/com_mpi.c:(.text+0xb447): undefined reference to_mm_idivrem_epi32'

我现在知道,这个功能_mm_idivrem_epi32是ia32intrin.h文件的英特尔编译的一部分。

当我在14.0.0 20130728版本的intel编译器的新群集上使用最新的intel mpiicc时,代码编译成功。 那么有什么办法告诉链接器包含函数_mm_idivrem_epi32的位置...

回答

0

_mm_idivrem_epi32()不是一个函数,而是一个编译器的内在。如果处理得当,它将被英特尔的短矢量数学库libsvml调用__svml_idivrem4()替代。

您很有可能被ICC自动矢量器中的一个错误所击中。尝试编译与-no-vec相同的源文件,并看到它有任何影响。或者更好地使用您拥有的最新ICC版本。

相关问题